Javascript - hogyan kötődnek a lista jelzőértékeit segítségével angularjs kód q - egy orosz (ru)

Van néhány doboz:

Ez szeretnék csatolni a lista az én vezérlő, hogy valahányszor változás zászló, a vezérlő program egy listát az összes vizsgált értékek, például [ „alma”, „körte”].

Ng-modell, úgy tűnik, képes megkötni egy zászló értéket egy változónak a vezérlőben.

Van más módja annak, hogy csinálni, így Elroppantlak négy jelölőnégyzetet a listában a vezérlő?

Kétféle módon lehet megközelíteni ezt a problémát. Vagy egy egyszerű tömböt vagy egy tömb tárgyak. Minden megoldás előnye és hátránya. Az alábbiakban találsz egy minden alkalomra.

Egy egyszerű tömb bemeneti

HTML a következőképpen nézhet ki:

És a vezérlő megfelelő kód lesz:

Előnye. egyszerű adatszerkezet és kapcsol elemzi könnyen kezelhetők

Cons. hozzáadása / eltávolítása nehézkes, mivel kezelni szükséges két listát (a kiválasztási és beviteli)

Egy sor tárgyak bemenet

HTML a következőképpen nézhet ki:

És a vezérlő megfelelő kód lesz:

Előnye. Hozzáadása / eltávolítása egy nagyon egyszerű

Cons. valamivel bonyolultabb kapcsolási struktúra és adatok név nehézkes vagy szükség segítő módszer

Íme egy rövid több kisebb irányelv, amely úgy tűnik, hogy amit akarsz. Csak hívta lista. Ez frissíti a tömb, amikor megváltoztatja a zászlók és lobogók frissítés, ha a tömb megváltozott.

Itt van egy vezérlő és egy nézet, amely azt mutatja, hogyan lehet használni.

(A gombok azt mutatják, hogy a tömb változás is frissíti a zászlókat.)

A válaszok alapján ebben a téma, hoztam létre egy iránymutatást feladatlista-modell, amely lefedi az összes esetet:

  • Egyszerű primitív tömbök
  • Egy sor objektumok (vagy jelölje ki a teljes objektum azonosító)
  • A hierarchia a objektum tulajdonságainak

Az esetben, ha a Start-start lesz:

Irányelv feladatlista-modell GitHubról Vitaly Potapov abszolút bejött (a használata összetett objektumok).

Töltöttem több órát próbál, hogy más megoldásokat dolgozni nem szerencse. Kiváló munka, vidám!

Használata string $ index segíthet egy hash térkép kiválasztott értékek:

Így, ng-modell objektum frissül kulcsot, ami az index.

Egy idő után, $ scope.someObject kell kinéznie:

Ez a módszer nem fog működni minden helyzetben, de ez könnyen megvalósítható.

Mivel már tett egy választ, hogy a lista nem került felhasználásra, azt feltételezzük a válasz a kérdésre a kérdést: „Nem, nem kell, hogy legyen egy listát.” Én is az volt a benyomásom, hogy talán elveszett HTML szervert «check» van jelen a példában HTML (nem lenne szükség, ha a ng-modellt használják a szimuláció a zászlók).

Különben is, ez az, amit gondolt, amikor feltette a kérdést is, ami arra utal, hogy hozzon létre egy kiszolgáló HTML-szerver:

Ng-init lehetővé teszi, hogy a szerver oldali HTML első szettet egyes zászlókat.

Én igazítani az elfogadott válasz Yoshi megoldások komplex tárgyak (helyett húrok).

A HTML-ben (feltételezzük, hogy a dobozok az első oszlopban minden sorban a táblázatban).

A controllers.js fájlt.

Itt van egy másik megoldás. én a lehetséges megoldásokat:

  • Nem igényel semmilyen további órák (amely befolyásolhatja a teljesítményt)
  • Nem igényel semmilyen kódot a vezérlő, hogy ő tiszta
  • A kód még mindig kissé rövid
  • Ez nagyon kevés kódot kell újra több helyen, mert ez csak egy iránymutatás

A végén, csak használja úgy, mint ez:

És ez minden, ami van. Az egyetlen újdonság az attribútum jelölőnégyzetet-array-set.

Akkor össze a AngularJS és jQuery. Például meg kell határoznia egy tömb, $ scope.selected = [];. A vezérlő.

Tudod kap egy tömb tartja a kiválasztott elem. A riasztás (JSON.stringify ($ scope.selected)) módszert. akkor ellenőrizze a kiválasztott terméket.

Van egy módja annak, hogy működni egy sor közvetlen és használata ng-modell ugyanakkor a ng-modell-options = "”.

A trükk az, hogy egy getter / setter függvények a ng-modellt. Így, akkor egy tömb, mint egy igazi modell és a „hamis” logikai elemek a belépő modellek:

Kivétellel. Akkor használja ezt a módszert, ha a tömbök nagyok, mint myGetterSetter fogják hívni sokszor.

A következő döntés úgy tűnik, egy jó lehetőség,

És a vezérlő érték modell lesz a gyümölcs