我正在尝试在另一个计算属性中使用计算属性,当我运行代码时,我在控制台中遇到以下错误。
除非您指定“写入”选项,否则无法将值写入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 fiddle link
<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>
答案 0 :(得分:8)
self.fullName是一个函数,返回计算值。
self.upperFullName = ko.computed(function() {
return self.fullName().toUpperCase();
});
注意括号!