【发布时间】:2016-03-03 12:58:19
【问题描述】:
我正在构建一个多部分表单,其中多个指令每个都包含多个输入。这些指令都在一个表单中,我将其名称作为 attr 传递给指令隔离范围。有了它,我传递了一个带有输入名称的对象,以使用 ng-messages 进行验证。现在..这个表格很大,所以我在这里只发布一个小例子,
问题 - 输入获得了我想要的名称,但我似乎无法访问 ng-messages 的表单名称属性...
here is my main form: (it has a couple of these directives in it...)
<form name="flightsForm" ng-show="formStagesArr[1]" novalidate>
<flight-form
ng-model="formObject.flight.outboundSec"
form-name="flightsForm"
validation-names="outSecValidation"
>
</flight-form>
</form>
这是我创建 outSecValidation 对象的主要范围:
$scope.outValidation = {
"dateName":'outDate'
}
这是我返回的 DDO 的飞行形式指令:
return {
restrict: 'EA' ,
controller: 'flightFormCtrl' ,
require : 'ngModel',
scope: {
ngModel: '=',
formName: '=',
validationNames: '='
},
link: function(scope , elem , attrs){
},
templateUrl:templateUrl
}
这是我的模板:
<md-contect>
<md-datepicker
name="{{validationNames.dateName}}"
ng-model="ngModel.date"
md-placeholder="{{ngModel.ArrOrDep}}"
required>
</md-datepicker>
</md-contect>
<div class="validation-messages"
ng-messages="formName.{{validationNames.dateName}}.$error">
<div ng-message="required">field required</div>
</div>
此代码出现“语法错误:令牌 '{' 不是有效标识符”错误。 但是如果我不能在 ng-messages 中使用两种方式的数据绑定,我该如何通过它的名称来验证该字段? 因为这个表达式“formName.validationNames.dateName.$error”显然是未定义的吧?
有什么想法吗?
如果我正在做的事情严重错误,您可以提供更好的方法,请随意..
谢谢!
【问题讨论】:
标签: javascript angularjs forms validation