Javascript 访问可下标函数中的计算值
使用我的视图模型时:Javascript 访问可下标函数中的计算值,javascript,knockout.js,Javascript,Knockout.js,使用我的视图模型时: function SummaryViewModel (arrayString) { //------- Attributes ------- var self = this; self.Claims = ko.observableArray(namesapce.Helpers.subnamespace.ToCollection(arrayString)); self.ShowTable = ko.computed(function() { var collect
function SummaryViewModel (arrayString) {
//------- Attributes -------
var self = this;
self.Claims = ko.observableArray(namesapce.Helpers.subnamespace.ToCollection(arrayString));
self.ShowTable = ko.computed(function() {
var collection = ko.unwrap(self.Claims());
return collection.length > 0;
}, this);
self.showWarningPanel = self.ShowTable.Not();
}
我正在尝试反转计算值。因此,要么显示表格,要么显示警告消息
我创建了以下可下标函数:
ko.subscribable.fn.Not = function () {
return ko.pureComputed(function() {
var bool = this();
return !(ko.unwrap(bool));
});
};
但是,this()
的值不提供计算属性的值。而是返回当前范围内的所有对象
最初,我将该方法标记为ko.computed.fn
,这也没有返回计算值
我一直在参考KO网站上的文档,以帮助构建该功能
您必须将
此
传递给您正在内部创建的pureComputed
:
ko.subscribable.fn.Not=函数(){
返回ko.pureComputed(函数(){
返回!这个();
},这个);
//^^^^^在这里,您告诉knockout使用`this'执行函数`
//或者,您可以使用var`self=this`
//模式。
};
var myObs=可观察到的ko(真);
var-dobs=myObs.Not();
肌瘤(假);
log(“可观察:+myObs());
console.log(“倒置:+invertordobs())代码>