0

私は Knockout.js の初心者で、カスタム バインディングを使用しようとしていますが、明確ではありません。「color」と「innerText」という名前の 2 つのカスタム バインディングを実現するとします。最初のもの(「色」)は要素に境界線の色を適用し、2番目のものは要素のinnerTextを設定します(組み込みの「テキスト」バインディングについてはしばらく忘れましょう...存在することは知っています)。私のカスタム バインディング innerText では、テキストの色を設定するための「色」オプションを受け入れることができます。今私が書くと:

<div data-bind="innerText: 'Hi everybody', color: 'Red'"></div>

Knockout はどのようにして「色」をどうするかを知っていますか? オプションとしてカスタムバインディングの「innerText」で色を使用し、allBindingsAccessor を使用して値を取得しますが、ノックアウトはそれが関連するバインディングであり、border-color が順番に適用される別のバインディングではないことをどのように認識しますか?

4

1 に答える 1

0

あなたの場合、 という別のバインディングがあった場合、を介しcolorてバインディング内から使用した場合でも、渡した値で実行されます。innerTextallBindingsAccessor

したがって、Knockout は特別なことは何もしませんが、存在しない bindingHandler を指定した場合にエラーをスローしないこと以外は、別のバインディングのオプションとして単に使用している可能性があるためです。

使用できる他のパターンは、オプション オブジェクトを次のようにカスタム バインドに渡すことです。

data-bind="innerText: { data: 'Hi everybody', color: Red }"

于 2013-02-11T20:23:54.137 に答える