2015-06-08 3 views
0

Это мой массив с объектами:Как я могу определить элементы массива в форме в AngularJS

//Controller 
$scope.form = [ 
    { 
    name: 'Lname', 
    items: [{ 
     label: 'Lastname', 
     type: 'text', 
     model: 'lname', 
     pattern: '/^[a-zA-Z]$/', 
     required: true 
    }] 
}, 
{ 
    name: 'Fname', 
    items: [{ 
    label: 'Firstname', 
    type: 'text', 
    model: 'fname', 
    pattern: '/^[a-zA-Z]$/', 
    required: true 
    }] 
}]; 

Вот форма мой взгляд:

<form class="form-horizontal" name="editForm" novalidate> 
    <div ng-repeat="elements in form"> 
    <div class="form-group-sm has-feedback" ng-repeat="el in elements.items"> 
     <label class="control-label">{{el.label}}</label> 
     <input type="{{el.type}}" 
      class="form-control" 
      placeholder="{el.label}" 
      ng-model="selected.[el.model]" 
      ng-pattern="el.pattern" 
      ng-required="el.required" 
     /> 

только корректно отображается метка , Другие переменные будут обрабатываться неправильно. Что не так?

+0

Ваш заполнитель неправильно из-заполнителем = "{el.label } "- Есть только 1 фигурные скобки – nikhil

+0

Квадратные скобки не имеют смысла в ng-model =" selected. [El.model] " – nikhil

+0

@ nikhil.agw Это не важно, потому что скобок. Он также не работает с двумя скобками. {{el.label}} – yuro

ответ

0

Вам нужно интерполировать образец и этикетки, так меняться от:

placeholder="{el.label}" 
ng-pattern="el.pattern" 

To:

placeholder="{{el.label}}" 
ng-pattern="{{el.pattern}}" 

Fiddle

+0

Я думаю, что в ngDirectives вам не нужно использовать скобки. Я попробовал двойные скобки в placeholder, но это не работает! – yuro

+0

@yuro Умм, возможно, тогда я что-то упустил, чего вы ожидаете, и нет? –

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