/ / knockout binding ako odstrániť atribút - knockout.js

knockout binding ako odstrániť atribút - knockout.js

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ď č. 1

Na 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 -->