2016-09-13 3 views
2

Gibt es eine Möglichkeit zu überprüfen, ob ein Array einen bestimmten Wert enthält, knockoutJS Verwendung in meinem HTML?Wenn in Array-Knockout js

Ich habe folgendes Kontrollkästchen:

<td><input type="checkbox" name="group" data-bind="checked: $parent.name in groupList" /></td> 

Es wäre schön, wenn eine bestimmte Aussage in meinem data-bind Attribute ($parent.name in groupList) funktionieren würde, aber offensichtlich ist es nicht. Mit Zweig ist es einfach:

{% if myVar is in_array(array_keys(someOtherArray)) %} 

Aber ich kann nicht einen Weg, dies zu tun mit Knockout JS finden. groupList enthält ein Array mit Namen und ich möchte überprüfen, ob es einen bestimmten Namen enthält. Wenn dies der Fall ist, muss das Kontrollkästchen aktiviert sein, sonst nicht.

+5

Daten-bind = "geprüft:.! Grouplist() indexOf (ko.unwrap ($ parent.name)) == -1" – TSV

+0

Works perfekt! Vielen Dank für Ihre schnelle Antwort! –

+0

@TSV, schöne Lösung. Es ist nicht nötig, 'groupList' aufzurufen. Knockout bietet bereits eine Methode 'indexOf' an, die den Wert intern auspackt. Also, 'groupList.indexOf (...)' wird auch funktionieren. – haim770

Antwort

0

Sie indexOf eines beobachtbaren Array verwenden können:

data-bind="checked: groupList().indexOf(ko.unwrap($parent.name)) !== -1" 
Verwandte Themen