我正在构建一个多部分表单,其中多个指令各自包含多个输入。这些指令都在一个表单中,我将其作为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>
此代码获得&#34;语法错误:令牌&#39; {&#39;不是有效的标识符&#34;错误。 但是,如果我不能在ng-messages中使用双向数据绑定,我如何通过它的名称来验证字段? 因为这个表达式&#34; formName.validationNames.dateName。$ error&#34;显然是不确定的吗?
任何想法?
如果我正在做的事情是严重错误的,你可以提供更好的方式,请随意...
谢谢!
答案 0 :(得分:0)
你可以完成你想做的事情。
<div class="validation-messages" ng-messages="formName[validationNames.dateName].$error">
但是你真的需要将validationNames传递给指令吗?不应该简单只是传递输入的名称?我没有在这种对象的模板中看到任何用途。此外它有点令人困惑,因为看起来你的模板只处理一种类型的输入,即&#39; dateName&#39;。无论如何,我希望我回答你的问题。