Kendo-Knockout: вызов метода, который изменяет свойство viewmodel из шаблона с привязкой данных внутри сетки, нарушает привязки
Я использую библиотеку кендо-нокаута Р.П.Нимейера. У меня есть сетка кендо с шаблоном кендо. В шаблоне есть кнопка, которая использует привязку щелчка для выбивания, которая вызывает метод, который изменяет viewModel. Действия по воспроизведению:
Нажмите кнопку в сетке.Вызывается метод, который изменяет свойство viewModel и оповещает о новом значении.Нажмите кнопку еще раз. Кнопка больше не работает.Примечание: если вы удалите строку, которая изменяет свойство модели представления, все работает нормально.
Пожалуйста, объясните причину, почему это не работает, и любые идеи и решения будут высоко оценены. Благодарю вас!
HTML:
<div id="grid" data-bind="kendoGrid: { data: fruits, columns: [
{
field: 'name',
title: 'Fruit',
width: 50
},
{
template: '<button class=\'k-button\' data-bind=\'click: function() { changeFruit() }\' >Change Fruit Name</button>',
width: 30
}
],
scrollable: false, sortable: true, pageable: false }" style="height: 380px">
</div>
JavaScript:
var ViewModel = function() {
this.fruit1 = {
color: ko.observable("green"),
name: ko.observable("apple"),
};
this.fruit2 = {
color: ko.observable("orange"),
name: ko.observable("orange"),
};
this.fruits = ko.observableArray([
this.fruit1,
this.fruit2
]);
this.changeFruit = function() {
// this line breaks the binding,
// when You change the property of the viewModel
// You cannot call this function any more
this.fruits()[0].name("Test");
alert(this.fruits()[0].name());
}
};
ko.applyBindings(new ViewModel());