2

ノックアウト.jsで計算可能なものをグローバルに公開したいと思います(グローバルなjavascriptスコープに昇格せずに)、たとえば:

<span data-binding="text: resource('test/resources', 'myresource')"></span>

または、新しい値を親の値に渡すバインディングをいくつか用意します。

<span data-binding="text: {resource: res: 'test/resources', name: 'myresource'}"></span>

残念ながら、私の徹底的な検索では何も見つかりませんでした。これはまったく可能ですか?

注:これを に追加できることはわかっていますViewModelが、これはネストされたオブジェクトを処理せ$root.resourceず、私の標準には十分な DRY ではありません。継承を使うこともできますが、できれば避けたいです。基本的に私がやろうとしているのは、ko の「式」を拡張することです。

4

2 に答える 2

1

さて、このパターンを使用して継承を行うか、koから名前空間のエイリアスを作成して変更します(基本的に、koからオブジェクトに名前空間をコピーし、目的の機能が得られるまで試してみます)。

于 2012-12-18T10:51:34.163 に答える
1

これは、カスタム バインディングで実現できます。

ko.bindingHandlers.resource = {
    init: function(element, valueAccessor){
        // Do here whathever you'd like to do with the resource

    }
};

このカスタム バインディングは、次のような標準の KO バインディングのように使用できます。

<div data-bind="resource: myResource"></div>

ここで働くフィドル

編集は、あなたが提供した新しい情報に従って私のフィドルを更新しました

于 2012-12-19T13:49:55.517 に答える