我正在根据输入的类型动态构建一个带角度的表单:
<div ng-controller="formController" ng-repeat="field in formFields" ng-switch="field.type">
<div ng-switch-when="text">
<!-- Something -->
</div>
<div ng-switch-when="dropdown">
<myDirective my-data="field.param" ng-model="field.model"></myDirective>
</div>
</div>
我的指令有两个问题,它构建了一个自定义下拉输入:
Ng-model指令将名称field.model
作为纯文本插入,而我希望attributs ng-model="field.model"
将替换为field.model
中包含的值。卷曲括号似乎在这里不起作用。有什么想法吗?
如何让ng-model值在我的表单控制器和自定义指令的控制器中都可访问?
字段对象的例子:
{
label : "Name",
model : "employeeName",
type : "dropdown",
param : {
dropdownArray : result,
dropdownName : 'Nom',
dropdownFieldValue : 'nameUUID',
dropdownVisibleValue : [ 'employeeSS', 'employeeName' ]
}
}
然后在我的控制器中,我应该能够使用:$scope.employeeName
访问此下拉列表值。
答案 0 :(得分:1)
听起来您正在通过提供给指令中field.model
函数的属性输入参数访问link
。相反,您应该通过范围变量访问它。
link: function(scope, element, attributes) {
// attributes.ngModel will yield 'field.model'
// scope.ngModel will contain the actual value of field.model
}
如果您没有明确定义指令的隔离范围,那么分配给ng-model
的{{1}}应该在您的指令中通过范围变量提供,如上所述。
field.model
希望有所帮助。