Создать ng-модель внутри ng-repeat

Я прочитал несколько тем, но не смог найти решение этой, на которой я застрял.

Я пытаюсь добавить ng-model внутрь ng-repeat примерно так:

<span ng-repeat="list in lists">
         <input type="checkbox" ng-model="formData.checkboxes.{{ list.value }}"> {{ list.number }} {{ list.description }} <br/>
</span>

и значения списка такие:

$scope.lists = [

    {

        value:'value1',
        number: '1',
        description:'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ',    
    },

    {
        value:'value2',
        number: '2',
        description:'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ', 
        },

        {
        value:'value3',
        number: '3',
        description:'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ',            },
    ];

Внутри цикла ng-repeat я хочу, чтобы он построил ng-модель, например: formData.checkboxes.value1 formData.checkboxes.value2, formData.checkboxes.value3 и т.д..

Это возможно? Когда я пробую вышеуказанный метод, ничего не появляется. Что я здесь делаю неправильно?


person Neel    schedule 13.03.2014    source источник


Ответы (2)


Сначала вы должны определить модель formData.checkboxes внутри вашего контроллера следующим образом:

$scope.formData = {
    checkboxes: {}
};

... и вы можете заполнить его так:

<span ng-repeat="list in lists">
    <input type="checkbox" ng-model="formData.checkboxes[list.value]"/> 
             {{ list.value }} {{ list.number }} {{ list.description }} <br/>
</span>

Взгляните на этот JSFiddle в качестве рабочего примера.

person PrimosK    schedule 13.03.2014
comment
Удивительно! Спасибо - person ruud; 02.09.2016

Попробуйте это решение

<span ng-repeat="list in lists">
         <input type="checkbox" ng-model="formData.checkboxes[list.value]"> {{ list.number }} {{ list.description }} <br/>
</span>
person Community    schedule 13.03.2014
comment
да, это работает. И, как указал @PrimosK, мне нужно сначала определить модель formData.checkboxes внутри моего контроллера. Спасибо за поддержку. :) - person Neel; 13.03.2014