我开始使用AngularJS的第一步,并希望创建一个带循环的Bootstrap表单但是出错了,我错了什么?
<form class="form-horizontal" role="form" name="newForm" novalidate ng-controller="newFormController">
<div class="form-group" ng-class="{'has-error': newForm.{{field.name}}.$invalid && !newForm.{{field.name}}.$pristine}" ng-repeat="field in fields">
<label class="col-sm-2 control-label">{{field.label}}</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="{{field.name}}" name="{{field.name}}" {{field.validation}} placeholder="{{field.placeholder}}" />
<p ng-show="newForm.{{field.name}}.$invalid && !newForm.{{field.name}}.$pristine" class="help-block">{{field.error}}</p>
</div>
</div>
</form>
错误:
语法错误:令牌'field.name'是意外的,期望[[{{field.name}}]的第3列的[:]从[field.name}}开始。
解析时出现:
ng-model="{{field.name}}"
控制器:
function newFormController($scope) {
$scope.fields = [{
name: 'Firstname',
label: Label.Get('28076475'), //First Name
placeholder: Label.Get('44175380'), //Enter First Name
validation: 'required',
error: 'Firstname is required.'
}, {
name: 'Lastname',
label: Label.Get('28076500'), //Last Name
placeholder: Label.Get('44175365'), //Enter Last Name
validation: 'required',
error: 'Lastname is required.'
}];
}
答案 0 :(得分:0)
我认为ng-model.
只需更改
ng-model="{{field.name}}"
到
ng-model="field.name"
答案 1 :(得分:0)
我认为你要做的是将field.name的值作为模态。以下是如何操作的方法 - 在ng-model和其他ng指令中使用newForm[field.name]
代替newForm.{{field.name}}
。