2013-05-21 16 views
12

Powiedzmy mam elementu HTMLwiązania jak usunąć atrybut

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

wiem, że mogę przekazać wartość testattribute za pomocą wiązania tak nokaut całkowicie usunąć ten atrybut poprzez powiązanie. Więc jeśli oryginalna wartość była

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

mój wynik końcowy powinien być

<element></element> 
+0

W rzeczywistości funkcja _need_ zapewnia sposób podawania pustych atrybutów, takich jak 'alt'. Niektóre z nich określają sposób, w jaki technologia asystująca, a być może roboty indeksujące, interpretują kod, sprawdź https://www.w3.org/TR/WCAG20-TECHS/H67.html –

Odpowiedz

24

attrbinding w KO rzeczywiście usunąć atrybut, jeśli wartość jest false, null lub undefined. Jeśli więc zwiążesz z obserwowalnym, a następnie ustawisz na jedną z tych wartości (nie pusty łańcuch), atrybut zostanie usunięty.

+0

Dziękuję. Próbowałem go z pustym łańcuchem i do twojego punktu, potrzebowałem fałszywego lub zerowego. – dreamerkumar

0

Można użyć warunkowe wiązanie przedstawiają element

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

Co można zrobić, IS mają dwie wersje elementu, jedną z wiązaniem attr i jedną bez, i użyj następującego kodu, aby dowiedzieć się, co powinno być dis grał dla tego konkretnego wiązania.

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

powinien to zrobić potrójny inline ponieważ forma nie akceptuje kilka sprawdzony przełącznik i będzie ignorować komentarze pucharowej tak nikt by być sprawdzana w celu uniknięcia zrobić tak:

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

zostanie ustawiony dokładne!

Powiązane problemy