15

Html要素があるとしましょう

<element testattribute='a'></element>

次のようなバインディングを使用して testattribute の値を渡すことができることはわかっています。

<element data-bind="attr: { testattribute: 'a'}></element>

しかし、バインディングを介してこの属性を完全に削除するにはどうすればよいですか。したがって、元の値が

 <element testattribute: 'a'></element>

私の最終結果は

<element></element>
4

3 に答える 3

26

値が、、またはの場合、KOのattr バインディングは実際に属性を削除します。したがって、オブザーバブルにバインドしてから、それらの値のいずれかに設定すると (空の文字列ではない)、属性が削除されます。falsenullundefined

于 2013-05-21T13:00:03.493 に答える
3

フォームはいくつかのチェックされたラジオボタンを受け入れず、ノックアウトコメントを無視するため、この三項インラインを行う必要があります。

<input type="radio" data-bind="attr:{'checked':($data.amount > 0) ? 'checked' : false}" id="q156" name="foo" value="positive" />

これは正確に設定されます!

于 2016-05-31T13:31:43.043 に答える
0

条件付きバインディングを使用して要素を表示できます

http://knockoutjs.com/documentation/if-binding.html

あなたができることは、要素の 2 つのバージョン (attr バインディングを含むものと含まないもの) を用意し、次のコードを使用して、その特定のバインディングに対して何を表示する必要があるかを判断することです。

<!-- ko if: someExpressionGoesHere -->
        <element data-bind="attr: { testattribute: 'a'}></element>
<!-- /ko -->
<!-- ko if: someExpressionGoesHere == false -->
        <element></element>
<!-- /ko -->
于 2013-05-21T12:57:02.417 に答える