javascript - 使用 knockoutJS 时出现错误可见

标签 javascript jquery html knockout.js

我使用knockoutJS,当我想要关闭 block divh 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)

当我编写不带函数 ko.compulated() 的 javascript 代码时

    this.flags = false;
    this.getFlag = function(){
        if(this.flags == false){
            this.flags = true;
        }else{
            this.flags = false;
        }
        console.log(this.flags);   
        return this.flags;
    };

我在浏览器控制台中看到此消息:

正确

当我按下按钮时,我有 falsetrue false true falsevisible 不起作用。 有什么问题吗?

最佳答案

所以首先你需要将你的属性声明为可观察的:

var self = this;
self.flag = ko.observable(false);

接下来我们将制作一个开关来来回切换标志:

self.toggleFlag = function(){
   self.flag(!self.flag());
}

现在您可以绑定(bind):

<button data-bind="click: toggleFlag">Click button</button>
<h3 data-bind="visible: flag">test visible</h3>

关于javascript - 使用 knockoutJS 时出现错误可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264195/

相关文章:

javascript - Open Layers 3 feature fill with Canvas 未固定到特征

javascript - 如果类存在 jQuery,则追加文本

jQuery 将升序数字添加到 ID

Javascript计算图像大小,图像加载后

javascript - jQuery 颜色缩放 html 表列

javascript - 从 iframe 调用 javascript 到整个网站

javascript - 左右填充不适用于菜单上的链接

javascript - 使用不透明度创建渐变动画

jquery - 基于 Web 的 3D 散点图

html - 我在网站上的百分比/布局问题。内容移动