Knockout.js 除非指定一个';写';选项

Knockout.js 除非指定一个';写';选项,knockout.js,computed-observable,Knockout.js,Computed Observable,我试图在另一个计算属性中使用计算属性,当我运行代码时,控制台中出现以下错误 无法将值写入ko.computed,除非指定“写入”选项 function AppViewModel() { var self = this; self.firstName = ko.observable('rahul'); self.lastName = ko.observable('sharma'); self.fullName = ko.computed(function() {

我试图在另一个计算属性中使用计算属性,当我运行代码时,控制台中出现以下错误

无法将值写入
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代码和


self.fullName是一个函数,返回计算值

self.upperFullName = ko.computed(function() {
  return self.fullName().toUpperCase();
});  

注意括号

当输入不是可写的计算机时,为什么要使用它?@Anders对不起,我没听明白你的意思?我对knockoutjs非常陌生。@Anders知道了,你想说当upperFullName没有计算时,为什么我要用它作为计算的对象。是的,你是对的。但是我怎样才能显示大写的fullName呢?不,我的意思是,既然您使用输入和值绑定来绑定“fullName”,它表示您想写入可观察对象,但您使用的是只读可观察对象
self.upperFullName = ko.computed(function() {
  return self.fullName().toUpperCase();
});