У меня есть функция в моей модели просмотра, которая должна изменить значение enabled в моем массиве от false до true.Изменение значения наблюдаемого символа из функции viewmodel
editclick: function (user) {
user.enabled = true;
return true;
}
Если я ставлю предупреждение, чтобы увидеть изменения
user.enabled = true;
alert(ko.toJSON(user));
Это показывает, что он сделал изменения, но значение привязки не изменяется.
Если я ставлю предупреждение перед изменением
alert(ko.toJSON(user));
user.enabled = true;
второй раз нажать на кнопку оповещения действительно показывает значение изменилось.
Вот мой jsFiddle, а также код, который я использую.
[JS]
var myViewModel = {
myarray: ko.observableArray([{
myname: 'Bob',
mysurname: 'Smith',
enabled: false
}, {
myname: 'John',
mysurname: 'Smith',
enabled: false
}]),
editclick: function (user) {
user.enabled = true;
alert(ko.toJSON(user));
return true;
}
};
[КОД]
<Table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<td>Button</td>
<td>Value</td>
</tr>
</thead>
<tbody data-bind="foreach: myarray">
<tr>
<td>
<input type="button" value="Change" data-bind="click: $root.editclick" />
</td>
<td><span data-bind="text: enabled" />
</td>
</tr>
</tbody>
</Table>
Я, кажется, что изменение не обновляет ViewModel. Есть ли возможность сделать эту работу.
Thanx
Вы сэр - джентльмен и ученый! –