Основная проблема, с которой вы сталкиваетесь, заключается в том, что вы вызываете неопределенную функцию и не передаете параметр в функцию toggleActive
.
Поскольку toggleActive
является методом Vue, вынеобходимо использовать this
для правильной ссылки на него и использовать функцию из вашего экземпляра Vue;как только эта проблема будет решена, вам нужно будет передать элемент, который вы хотите переключить, потому что для написания этой функции требуется параметр для обновления активного состояния.
Вот как вы можете обновитьваша addItem
функция, чтобы заставить ее работать:
addItem: function() {
var newItem= {
name:this.name,
price:this.price,
active: false,
};
this.services.push(newItem);
this.name="";
this.price="";
this.toggleActive(this.services[this.services.length - 1]);
},
Также обратите внимание, что я добавил свойство active
во время создания элемента, чтобы Vue рассматривал это как реактивное свойство.В противном случае ваш элемент будет зависать в активном состоянии (после переключения) и не может стать неактивным при нажатии.Вы можете изменить это значение на active: true
во время создания (и удалить вызов, чтобы сделать его полностью активным), если все новые элементы должны быть активны при создании.Однако я этого не делал, так как хотел показать, как исправить вызов на toggleActive
.
. Здесь вы можете просмотреть и обновленный Codepen , если хотите.чтобы увидеть код в полностью рабочем состоянии.