Povedzme, že mám prvok HTML
<element testattribute="a"></element>
Viem, že môžem prejsť hodnotu testovacej vzorky pomocou väzby takto:
<element data-bind="attr: { testattribute: "a"}></element>
Ale ako môžem tento atribút úplne odstrániť prostredníctvom väzby. Takže ak bola pôvodná hodnota
<element testattribute: "a"></element>
môj konečný výsledok by mal byť
<element></element>
odpovede:
24 pre odpoveď č. 1Na attr
viazanie v KO skutočne sa to odstrániť, atribút, ak je hodnota false
, null
, alebo undefined
. Takže ak viazať proti pozorovateľné a nastavte ju na jednu z týchto hodnôt (nie je prázdny reťazec), potom sa odstránia atribút.
3 pre odpoveď č. 2
Tento ternárnych inline by ste mali urobiť, pretože formulár nie prijíma niekoľko kontrolované prepínač a bude ignorovať knockout komentáre tak nikto by skontroloval vyhnúť sa páči:
<input type="radio" data-bind="attr:{"checked":($data.amount > 0) ? "checked" : false}" id="q156" name="foo" value="positive" />
týmto nastavíte presný!
0 pre odpoveď č. 3
Na zobrazenie prvku môžete použiť podmienené viazanie
http://knockoutjs.com/documentation/if-binding.html
Čo by ste mohli urobiť, sú dve verzie prvku, jedna s väzbou attr a druhá bez a pomocou nasledujúceho kódu zistíte, čo by sa malo zobraziť pre túto konkrétnu väzbu.
<!-- ko if: someExpressionGoesHere -->
<element data-bind="attr: { testattribute: "a"}></element>
<!-- /ko -->
<!-- ko if: someExpressionGoesHere == false -->
<element></element>
<!-- /ko -->