Réglage dynamique ng-les noms de modèle dans AngularJS

Il y a des questions similaires ici et ici, bien que mon cas d'utilisation est un peu différente.

J'ai un objet appelé uniqueLists qui ressemble à ceci:

$scope.uniqueLists - {
    name: [
            'string1',
            'string2',
            'string3'
            //Lots of strings
    ],
    Category: [
            'string1',
            'string2',
            'string3'
            //Lots of strings
    ],
    designer: [
            'string1',
            'string2',
            'string3'
            //Lots of strings
    ]
}

Je suis en train de construire une fonction de recherche de cette liste. Actuellement, je peut afficher tous les éléments de la liste des cases à cocher sur la page comme ceci (le code suivant utilise Jade moteur de template pour le Nœud/ExpressJS, il est assez facile à comprendre, même si vous n'êtes pas familier avec elle. Indent == nœud enfant de la ligne du dessus)

div(class="searchNav")
    p(ng-repeat="param in searchParams") {{param[0] + ' = ' + param[1]}}

    div.row-fluid(ng-repeat="(key,val) in uniqueLists")
        form(ng-model="???") {{key}}
            label.checkbox(ng-repeat="value in val")
                input(type="checkbox", ng-model="?????") 
                {{value}}

La seule partie que je vais avoir des problèmes avec, est le ng-model de ma forme et de cases à cocher. Je veux le form's ng-model == {{key}}. J'ai essayé de réglage mais il casse Angulaire. J'ai aussi essayé de ng-model='uniqueLists[index][0]' mais, encore une fois, Angulaire ne pas analyser cette et fait tout toute forme de modèle de la chaîne de uniqueLists[index][0].

Même chose avec le input cases à cocher, je veux leur ng-model="{{value}}". Est-il un moyen de le faire dans mon contrôleur, peut-être? Je ne peux pas penser à quelque chose qui va travailler à l'intérieur de ng-repeat.

Une petite remarque à quelqu'un qui trébuche sur cette question

Comme vous le verrez dans la réponse/violon-dessous, lorsque vous faites référence à l'objet/positions dans un ng-model ils ne sont pas rendus en leurs noms corrects dans les DOM, mais ils semblent travailler avec Anguleux comme s'ils l'étaient.

Par exemple, dans le code ci-dessus, le réglage de ng-model="uniqueLists[key][val]" rend dans les DOM comme ng-model="uniqueLists[key][val]", mais se comporte comme si elle ng-model="uniqueLists[name][string1]".

Semble être un étrange caprice du moment cinétique, ce trébuché moi parce que j'ai été vérifier le ng-model noms dans mon navigateur avant de le connecter à mon contrôleur, et quand j'ai vu que c'était pas de l'analyse de l'objet pour les valeurs correctes je suppose qu'il ne fonctionnait pas.

Bonjour, juste deux petites questions. Le premier, sur la forme+ng-model, je ne comprends vraiment pas pourquoi une ng-model ici, ne serait-il pas plus facile avec un simple attribut 'name'? Et la seconde, dans l'exemple de uniqueLists que vous avez fournies, certaines valeurs sont dupliqués (qui je pense sera également le cas dans le réel de données), si vous faites quelque chose comme " ng-model="valeur", avec votre exemple, vous n'avez que 3 modèles, et les cases à cocher sera lié dans les différentes catégories, de plus, si vous affichez le {{value}} à côté d'eux, elle sera remplacée par vrai/faux au premier clic, alors, que faites-vous voulez vraiment obtenir ?
L'exemple que j'ai donné était juste de l'espace réservé, les valeurs de y sont tous uniques (d'où le nom de uniqueLists!). Ce sont des cases à cocher, et je souhaite à chacun d'avoir une ng-model un nom qui fait référence dans le texte de la case de l'étiquette. C'est parce qu'il fait partie d'une recherche, j'ai les paramètres de recherche dans mon contrôleur, et je veux les cases où ils visent à être "cochées". Un sens? Comme si vous la recherche pour "Bonjour", "Test1" et "Test2", sur la page de résultats les cases à cocher avec ces chaînes seraient vérifiées.
double possible de Comment puis-je définir un modèle dynamique nom dans AngularJS?

OriginalL'auteur JVG | 2013-07-28