0

アプリケーションで 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 はテキストであり、かなりうまく機能しています:)。

しかし、可視性バインディングが機能していません。何か考えがありますか? 私はどこか間違っていますか?

4

2 に答える 2

0

バインディングを変更data-bind="visible:master.child.showDeleteLink()して、かなりうまく機能するようになりました

于 2013-04-17T12:07:28.363 に答える
0
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);
    });
于 2013-04-17T12:32:07.237 に答える