2014-11-23 4 views
0

У меня есть несколько объектов и форма. Каждый объект должен помнить состояние его формы (в основном, грязность).Угловая форма с динамическим именем не инициализируется

Я пытаюсь создать форму с динамическим именем, как например:

<form name="selectedObject.form"> 
    <input type="text" name="name" ng-model="selectedObject.name" required> 
</form> 

Моя проблема заключается в:

  1. я сделать первый вид грязного
  2. Изменить выбранный объект
  3. Форма считается грязной

Я бы подумал, что использование динамического имени в форме будет устанавливать часы и динамически переписывать их. В любом случае, чтобы это сделать?

Вот plunkr имитируя проблему: http://plnkr.co/edit/NAHVfhCf6RhpJHPGl7El?p=preview

ответ

0

Как вы хотели бы иметь его работу, я думаю, что нет. Я также вижу проблему в вашем коде, а именно объявление формы. Имя - это строка, поэтому теперь имя вашей формы всегда буквально selectedObject.form. Я думаю, что вы напишете его как <form name="{{ selectedObject.form }}"> и имеете настоящее имя для формы вместо {}, которую вы назначили сейчас?

Вы можете добавить isDirty как новое свойство вашего objects и переключить его вручную.

$scope.objects = [{ 
    name: 'Object1', 
    type: 'Type1', 
    form: 'form1', 
    isDirty: false 
},{ 
    name: '', 
    type: 'Type2', 
    form: 'form2', 
    isDirty: false }]; 

<body ng-controller="MainCtrl"> 
    <button ng-click="setSelected()">Change selected</button> 
    <form name="{{ selectedObject.form }}"> 
    <input type="text" 
      ng-model="selectedObject.name" 
      ng-change="selectedObject.isDirty = true"> 
    {{ selectedObject.isDirty }} 
    </form> 
</body> 
Смежные вопросы