2016-01-06 2 views
1

Моего текущего сценария: Я делаю вложенность повторение, как следующие:AngularJS: как генерировать динамические нг-модель для типа ввода [текст]

<form name="task_form" ng-app="myApp" ng-submit="tasksubmit()">  
<ul class="items-list"> 
     <li ng-repeat="task in taskslist | orderBy:orderProp"> 
     <p> 
     <strong>{{task.title}}</strong> 
     </p> 
     <input type="text" ng-model="task_input_values[task.id]" > 
    </li> 
    </ul> 
</form> 

Если в tasklist массиве У меня есть 100+ tasks то это означает, что у меня более 100 одинаковых значений ng-model для <input type=text>. Здесь im using ng-model="task_input_values[task.id]" оно дает мне массив как {"14":"sometext here"} я не умею как захватить id то есть 14 и input value то есть sometext here. Более того, если у вас есть какая-то лучшая логика, пожалуйста, помогите мне. Я новичок в angularJS.

+1

может у пожалуйста, более конкретно, что вы пытаетесь достичь. Пример будет приятным – Yerken

+0

Спасибо за ваш ответ. Здесь, в моем случае, я получаю этот массив '{" 14 ":" sometext here "}' from 'ng-model =" task_input_values ​​[task.id] "', пожалуйста, помогите мне, как получить ключ и текст из массива, который сгенерирован по этой 'ng-model' –

+0

Можете ли вы дать нам результат по меньшей мере из 10 элементов? Ваш вопрос действительно запутан! Я хотел бы ответить на него, но понять вашу проблему невозможно. См. Ниже - мой ответ. Но, видимо, это вас не удовлетворяет. –

ответ

0

Вы можете редактировать относящиеся непосредственно объект вы итерация:

<form name="task_form" ng-app="myApp" ng-submit="tasksubmit()">  
<ul class="items-list"> 
     <li ng-repeat="task in taskslist | orderBy:orderProp"> 
     <p> 
     <strong>{{task.title}}</strong> 
     </p> 
     <input type="text" ng-model="task.title" > 
    </li> 
    </ul> 
</form> 
0

Смотреть демо: live demo Вам просто нужно использовать tasks переменную как массив объектов:

$scope.taskslist = [ 
    {title: "I am first text input"}, 
    {title: "I am second text input"} 
    ]; 

, а затем привязать к значению свойства объекта в ngRepeat:

<form name="task_form" ng-app="myApp" ng-submit="tasksubmit()">  
    <ul class="items-list"> 
     <li ng-repeat="task in taskslist | orderBy:orderProp"> 
      <p> 
       <strong>{{task.title}}</strong> 
      </p> 
      <input type="text" ng-model="task.title" > 
     </li> 
    </ul> 
</form> 

Поскольку tasks массив - вам не нужно указать идентификатор, как tasks[$index] дать вам значение заголовка;) Пример: tasks[1] дает: {text: "I am second text input"}

Смежные вопросы