У меня есть список и навигация, которые создаются из 12 элементов на страницу в зависимости от количества строк данных.
Мои кнопки навигации запускают события vue-js v-on: click
Я также пытаюсь динамически сгенерировать методы функций в файле JS, но не могу вставить оператор цикла в разделе методов. Продолжайте получать синтаксические ошибки.
Есть ли особый синтаксис JS в разделе методов vueJS?
methods: {
for (x = 0; x < 2; x++){
featuredStores.'x' = function(){
for (y = 0; y < 2; y++)
this.storeFeatNav.'y' = !this.storeFeatNav.'y'
}}
Я также использую фреймворк Laravel, если это помогает.
Спасибо
@Sphinx - похоже, не сработало. Я увязаю даже в заявлении for






Очевидно, что вы хотите добавлять методы динамически, но неясно, что вы делаете в коде присоединения динамического метода. Итак, я собираюсь показать вам способ динамического добавления методов, например:
var methods = {
greet() {
console.info(this.message + ' from greet method.');
}
};
for (let x = 0; x < 2; x++) {
methods['featuredStores'+x] = function() {
console.info(this.message + ' from featuredStores'+x+' method.');
}
}
Обратите внимание, что methods['featuredStores'+x] фактически создает имя метода, объединяя значение x со строкой featuredStores внутри цикла, поэтому в первый раз значением x будет 0, который производит featuredStores0, а второй раз значением x будет 1, поэтому он производит featuredStores0 и наконец, у вас есть три метода:
greet // hard coded
featuredStores0 // added dynamically within the loop
featuredStores1 // added dynamically within the loop
Теперь все, что вам нужно, добавить объект methods в качестве свойства нового экземпляра при создании экземпляра Vue, например:
var demo = new Vue({
el: '#demo',
methods: methods, // or just methods
data:{
message: "Hello World"
}
});
Чтобы увидеть это в действии, запустите следующий фрагмент кода (надеюсь, это даст вам некоторое представление):
var methods = {
greet() {
console.info(this.message + ' from greet method.');
}
};
for (let x = 0; x < 2; x++) {
methods['featuredStores'+x] = function() {
console.info(this.message + ' from featuredStores'+x+' method.');
}
}
var demo = new Vue({
el: '#demo',
methods,
data:{
message: "Hello World"
},
created() {
this.greet();
this.featuredStores0();
this.featuredStores1();
}
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/0.8.6/vue.min.js"></script>
<div id = "demo">
{{message}}
</div>Привет @The Alpha, спасибо, что нашли время и поняли мой вопрос. Это решение именно то, что я ищу. Лучше всего то, что я научился лучше задавать свои вопросы на этом форуме
Добро пожаловать! Рад это знать :-)
похоже
this.storeFeatNav[x]