Невозможно записать значение в ko.computed, если вы не укажете опцию 'write'
Я пытаюсь использовать вычисленные свойства в других вычисляемых свойствах, и когда я запускаю код, я получаю следующую ошибку в консоли.
Невозможно записать значение в ko.computed
если вы не укажете опцию "запись"
function AppViewModel() {
var self = this;
self.firstName = ko.observable('rahul');
self.lastName = ko.observable('sharma');
self.fullName = ko.computed(function() {
return self.firstName() +' ' + self.lastName();
});
self.upperFullName = ko.computed(function() {
return self.fullName.toUpperCase();
});
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
а вот HTML-код и JS скрипку
<p><input data-bind="value: firstName"></p>
<p><input data-bind="value: lastName"></p>
<p><input data-bind="value: fullName"></p>
<p> <span data-bind="text: upperFullName"> </span> </p>
1 ответ
Решение
self.fullName - это функция, возвращающая вычисленное значение.
self.upperFullName = ko.computed(function() {
return self.fullName().toUpperCase();
});
обратите внимание на круглые скобки!