Knockout.js 敲除JS错误:除非指定';写';选项

Knockout.js 敲除JS错误:除非指定';写';选项,knockout.js,Knockout.js,有一个问题,不一定是游戏打破。我有一个简单的带有排序的表和两个过滤器。一个过滤器由数组填充(活动、非活动、全部显示),另一个基于搜索条件 代码是有效的。但当我启动开发工具时,我会出现以下错误: 除非指定“写入”选项,否则无法将值写入ko.computed。如果要读取当前值,请不要传递任何参数 我的代码如下,我设置了一个JS提琴,但我无法让它工作,所以我不确定它是否有用- var sgsoip=window.sgsoip | |{}; sgsoip.FunctionalArea=函数(Funct

有一个问题,不一定是游戏打破。我有一个简单的带有排序的表和两个过滤器。一个过滤器由数组填充(活动、非活动、全部显示),另一个基于搜索条件

代码是有效的。但当我启动开发工具时,我会出现以下错误:

除非指定“写入”选项,否则无法将值写入ko.computed。如果要读取当前值,请不要传递任何参数

我的代码如下,我设置了一个JS提琴,但我无法让它工作,所以我不确定它是否有用-

var sgsoip=window.sgsoip | |{};
sgsoip.FunctionalArea=函数(FunctionalAreaID、FunctionalAreaName、FunctionalAreaActive){
"严格使用",;
this.FunctionalAreaID=ko.可观察(FunctionalAreaID);
this.functionaleAname=ko.observable(functionaleAname);//.extend({required:“Functional Area Name is required”});
this.functionalreaactive=ko.observable(functionalreaactive);/.extend({required:“Active is required”});
//this.HasError=ko.pureComputed(函数(){
//返回this.functionaleaactive.hasError()| this.functionaleaname.hasError();
//},这个);
};
var sgsoip=window.sgsoip | |{};
sgsoip.functionalreaviewmodel=函数(ko){
var self=这个;
自功能区域=可观察区域([]);
self.search=ko.可观察(“”);
self.headers=[
{title:'',sortPropertyName:'',asc:true,active:false},
{title:'Functional Area Name',sortPropertyName:'FunctionalAreaName',asc:true,active:true},
{title:'Active',sortPropertyName:'functionalreaactive',asc:true,Active:false}
];
self.filters=[
{title:“全部显示”,筛选器:null},
{title:“活动”,筛选器:函数(项){return item.functionalreaactive()==true;}},
{title:“非活动”,筛选器:函数(项){return item.functionalreaactive()==false;}}
];
self.activeFilter=ko.observable(self.filters[0].filter);
self.activeSort=ko.observable(函数(){return 1;});//设置默认排序
self.setActiveFilter=函数(模型、事件){
self.activeFilter(model.filter);
}
self.sort=函数(标题、事件){
//如果此标题只是第二次单击
if(header.active){
header.asc=!header.asc;//切换排序方向
}
//确保所有其他标题都设置为非活动
ko.utils.arrayForEach(self.headers,函数(item){item.active=false;});
//刚才单击的标题现在处于活动状态
header.active=true;//我们现在的活动头
var prop=header.sortPropertyName;
var ascort=函数(a,b){返回a[prop]()b[prop]()?1:a[prop]()==b[prop]()?0:0;};
var descSort=函数(a,b){返回a[prop]()>b[prop]()?-1:a[prop]()

搜索:
过滤器:
全部展示

您可以像这样绑定搜索输入


这意味着每次keyup事件发生时,knockout将调用
filteredItems
<代码>过滤器数据项定义为:

self.filteredItems = ko.computed(function () { /* ... */ })
i、 e.只读计算机。如果你用任何论点来称呼它,k
<input name="searchString" data-bind="textInput: search"> 
 this.fullName = ko.pureComputed({
    read: function () {
        return this.firstName() + " " + this.lastName();
    },
    write: function (value) {
        var lastSpacePos = value.lastIndexOf(" ");
        if (lastSpacePos > 0) { // Ignore values with no space character
            this.firstName(value.substring(0, lastSpacePos)); // Update "firstName"
            this.lastName(value.substring(lastSpacePos + 1)); // Update "lastName"
        }
    },
    owner: this
});