【问题标题】:Knockout data-bind in checkbox not working on android (4.2)复选框中的敲除数据绑定在 android (4.2) 上不起作用
【发布时间】:2014-02-03 06:18:18
【问题描述】:

使用 Knockout JS 在我的 html 控件中进行数据绑定存在问题:

我有以下输入复选框

<input type="checkbox" id="chbText" data-mini="true" data-bind="checked: chkAddLabel"  />

我已绑定 chkAddLabel 属性以使用以下代码显示/隐藏一些 div

 this.IsShowDiv = ko.computed(function () {
     return this.chkAddLabel();
 }

最后是 div

<div data-bind="visible: IsShowDiv"></div> 

同样的代码在 Windows 操作系统浏览器(Chrome、IE、firefox)上运行良好,但在 Nexus 7 和 Nexus 5 上无法运行。

【问题讨论】:

  • 你能在 jsFiddle 中放一个例子来复制这个问题吗?
  • 确定您使用的是什么版本的 Knockout。阅读knockoutjs.com/documentation/browser-support.html 并运行测试套件以了解其支持与否。如果不支持,则在 github 帐户中创建问题
  • 不确定为什么需要一个只返回 chkAddLabel 值的计算变量 IsShowDiv?似乎多余

标签: javascript html knockout.js


【解决方案1】:

您需要将this 变量复制到局部变量。假设将其视为self。我们需要这样做,因为每个函数都有默认变量this 因为父 this 被新的 this 覆盖。

var self = this;
self.IsShowDiv = ko.computed(function () {
 return self.chkAddLabel();
}

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2015-06-05
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多