web-dev-qa-db-fra.com

AngularJS case à cocher ng-répéter et objets sélectionnés?

J'essaie de le faire de manière appropriée avec moins de douleur, mais je ne peux pas comprendre comment traiter ng-model et le lier à la liste sélectionnée, etc. De plus, je dois remplir cette liste ultérieurement et conserver les objets sélectionnés. en elle.

categories = [ { "name": "Sport", "id": "50d5ad" } , {"name": "General", "id": "678ffr" } ]

    <span ng-repeat="category in categories">
      <label class="checkbox" for="{{category.id}}">
        <input type="checkbox" value="{{category.id}}" ng-model="??" ng-click="??" name="group" id="{{category.id}}" />
        {{category.name}}
      </label>
    </span>

Je dois remplacer les catégories chaque fois que la liste est remplie, car elle sera extraite d'un serveur.

Donc, je suppose que je dois avoir des tableaux et le second tiendra les objets sélectionnés?

Si j'ai raison, comment présélectionner les cases à cocher?

Dois-je besoin de ng-click afin d'appeler la fonction personnalisée pour stocker l'objet sélectionné dans l'autre tableau?

Ai-je besoin de ng-model dans la case à cocher Et pour quoi faire?

Quelle est la manière appropriée avec moins de douleur?

40
Jakub Kuchar

Je dois remplacer les catégories chaque fois que la liste est remplie, car elle sera extraite du serveur de formulaire. Donc, il me faut des tableaux et le second contiendra les objets sélectionnés?

Oui, puisque c’est une liste, vous pouvez/devriez utiliser des tableaux. Les informations sur les éléments/objets sélectionnés doivent être stockées sur votre modèle de scope (exemple ci-dessous).

Si j'ai raison, comment puis-je présélectionner des cases à cocher?

Enregistrez les identifiants des options/cases à cocher sélectionnées sur votre modèle et laissez le ng-model fais le reste.

Dois-je besoin de ng-click afin d'appeler la fonction personnalisée pour stocker l'objet sélectionné dans l'autre tableau?

Non, tu n'en as pas besoin, ng-model est assez.

Ai-je besoin de ng-model dans la case à cocher? Et pour quoi?

Oui vous en avez besoin Le ng-model est responsable de l'enregistrement des options sélectionnées sur votre modèle et de l'automatisation de la sélection ('pré -').

jsfiddle http://jsfiddle.net/bmleite/PQvQ2/

70
bmleite