/ / knockout binding jak usunąć atrybut - knockout.js

nokaut wiążący jak usunąć atrybut - knockout.js

Powiedzmy, że mam element HTML

<element testattribute="a"></element>

Wiem, że mogę przekazać wartość atrybutu testattribute przy użyciu takiego powiązania:

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

Ale jak mogę całkowicie usunąć ten atrybut przez powiązanie. Więc jeśli pierwotna wartość to

 <element testattribute: "a"></element>

moim końcowym wynikiem powinno być

<element></element>

Odpowiedzi:

24 dla odpowiedzi № 1

The attr wiążący w KO faktycznie usunie atrybut, jeśli wartość wynosi false, null, lub undefined. Jeśli więc powiążesz z obserwowalnym, a następnie ustawisz jedną z tych wartości (nie pusty ciąg), wówczas atrybut zostanie usunięty.


3 dla odpowiedzi № 2

powinieneś zrobić to trójkowe inline, ponieważ formularz nie akceptuje kilku zaznaczonych opcji i zignoruje komentarze nokautu, więc żadne nie zostanie sprawdzone, aby uniknąć:

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

to ustawi dokładne!


0 dla odpowiedzi № 3

Aby wyświetlić element, można użyć powiązania warunkowego

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

To, co możesz zrobić, to mieć dwie wersje elementu, jedną z wiązaniem attr, a drugą bez i użyj następującego kodu, aby dowiedzieć się, co powinno być wyświetlane dla tego konkretnego powiązania.

<!-- ko if: someExpressionGoesHere -->
<element data-bind="attr: { testattribute: "a"}></element>
<!-- /ko -->
<!-- ko if: someExpressionGoesHere == false -->
<element></element>
<!-- /ko -->