1

多くのロジックを含むデータバインドがあります。現在、欲しいものを手に入れるために、いくつかの場所に貼り付ける必要があります。KOオブジェクトのメソッドとして、できれば一箇所だけの機能にしたいと思います。移動する必要のあるデータバインドは、イタリック体のカウントテキストを作成するものです。

data-bind="text: ($data.children)?($data.children.filter(function(e){return e.enabled()}).length + ' Children On'):('No Children')"

http://jsfiddle.net/5UeND/6/

4

1 に答える 1

0

ko.computedメインのビューモデルに、次の計算でを返す関数を作成できます。

self.childrenCounter = function(data) {
        return ko.computed(function() {
            return (this.children) ? (this.children.filter(function(e) {
                return e.enabled()
            }).length + ' Children On') : ('No Children')
        }, data);
    }

次に、テンプレート内で次のように使用できます。

<i data-bind="text: $root.childrenCounter($data)"></i>

デモJSFiddle。

于 2012-11-13T20:06:16.357 に答える