【问题标题】:Knock out visible binding of anchor tag is not working敲除锚标记的可见绑定不起作用
【发布时间】:2013-04-17 20:37:52
【问题描述】:

我在我的应用程序中使用 JavaScript 模块模式。 这是我的 html 绑定

<a href="#" data-bind="visible:master.child.showDeleteLink,click: function(obj, event) { master.child.showDeletePopup() } ">

我的视图模式是

    master.child=(function (my, jQuery, ko) {
    var textTemp;
    my.ViewModel = function () {
    self.showDeleteLink = ko.observable();
        self.showDeleteLink = function () {
            if (textTemp.length > 500)
                return true;
            else
                return false;
       }
    ko.applyBindings(my.anothermodule);
    } 
}(master.child, $, ko));

点击绑定,html 是文本工作得很好:)。

但是可见性绑定不起作用。任何人有任何想法吗?我哪里错了?

【问题讨论】:

  • 请显示showDeleteLink 的代码。如果可能的话,提供一个 jsfiddle
  • 对不起@昼夜节律。错误地我忘记更改变量名。我更正了变量。我无法生成问题的 js 小提琴尝试一次。
  • showDeleteLink 始终为真还是始终为假?我怀疑这与你如何称呼它有关(master.child.showDeleteLink)。您是否尝试过使用data-bind="text:showDeleteLink" 输出它
  • 是的价值是真实的。谢谢您的时间。我得到了解决方案。我将现有绑定更改为 data-bind="visible:master.child.showDeleteLink() 现在它工作正常

标签: knockout.js javascript


【解决方案1】:
my.ViewModel = function () {
    self.showDeleteLink = ko.observable();
        self.showDeleteLink = function () {
            if (textTemp.length > 500)
                return true;
            else
                return false;
       }

您的“self.showDeleteLink”不再可见。你给它一个新值,就是函数。

我认为您正在寻找的是一个计算值: http://knockoutjs.com/documentation/computedObservables.html

self.showDeleteLink = ko.computed(function() {
        return (textTemp.length > 500);
    });

【讨论】:

    【解决方案2】:

    将绑定更改为data-bind="visible:master.child.showDeleteLink() 现在它工作得很好

    【讨论】:

    • 但我仍然不清楚data-bind="visible:master.child.showDeleteLink()data-bind="visible:master.child.showDeleteLink之间的区别任何人有任何想法
    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 2015-06-05
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多