使用可见的 knockoutJS 时出错
error when working with knockoutJS visible
我使用 knockoutJS,当我想关闭块 div
或 h
html 标签时出现错误。
我的Javascript错误发生的代码:
function myModel(){
this.flags = false;
this.getFlag = ko.computed(function(){
if(this.flags == false){
this.flags = true;
}else{
this.flags = false;
}
console.log(this.flags);
return this.flags;
});
}
ko.applyBindings(new myModel());
我的HTML:
<button data-bind="click: getFlag">Click button</button>
<h3 data-bind="visible: getFlag()">test visible</h3>
当我点击我的按钮时,我在浏览器控制台中看到这条消息:
false Uncaught Error: Cannot write a value to a ko.computed unless you
specify a 'write' option. If you wish to read the current value, don't
pass any parameters.knockout-3.3.0.js:44 gknockout-3.3.0.js:83
(anonymous function)
当我写 javascript 没有函数的代码时 ko.computed()
this.flags = false;
this.getFlag = function(){
if(this.flags == false){
this.flags = true;
}else{
this.flags = false;
}
console.log(this.flags);
return this.flags;
};
我在浏览器控制台中收到此消息:
正确
当我按下按钮时,我有 false
,等等 true
false
true
false
但 visible
不起作用.
有什么问题?
所以首先你需要将你的属性声明为可观察的:
var self = this;
self.flag = ko.observable(false);
接下来我们将制作一个开关来来回切换标志:
self.toggleFlag = function(){
self.flag(!self.flag());
}
现在可以绑定了:
<button data-bind="click: toggleFlag">Click button</button>
<h3 data-bind="visible: flag">test visible</h3>
我使用 knockoutJS,当我想关闭块 div
或 h
html 标签时出现错误。
我的Javascript错误发生的代码:
function myModel(){
this.flags = false;
this.getFlag = ko.computed(function(){
if(this.flags == false){
this.flags = true;
}else{
this.flags = false;
}
console.log(this.flags);
return this.flags;
});
}
ko.applyBindings(new myModel());
我的HTML:
<button data-bind="click: getFlag">Click button</button>
<h3 data-bind="visible: getFlag()">test visible</h3>
当我点击我的按钮时,我在浏览器控制台中看到这条消息:
false Uncaught Error: Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.knockout-3.3.0.js:44 gknockout-3.3.0.js:83 (anonymous function)
当我写 javascript 没有函数的代码时 ko.computed()
this.flags = false;
this.getFlag = function(){
if(this.flags == false){
this.flags = true;
}else{
this.flags = false;
}
console.log(this.flags);
return this.flags;
};
我在浏览器控制台中收到此消息:
正确
当我按下按钮时,我有 false
,等等 true
false
true
false
但 visible
不起作用.
有什么问题?
所以首先你需要将你的属性声明为可观察的:
var self = this;
self.flag = ko.observable(false);
接下来我们将制作一个开关来来回切换标志:
self.toggleFlag = function(){
self.flag(!self.flag());
}
现在可以绑定了:
<button data-bind="click: toggleFlag">Click button</button>
<h3 data-bind="visible: flag">test visible</h3>