试试我的自定义指令:
myApp.directive("dynamicName",function($compile){ return { restrict:"A", terminal:true, priority:1000, link:function(scope,element,attrs){ element.attr('name', scope.$eval(attrs.dynamicName)); element.removeAttr("dynamic-name"); $compile(element)(scope); } };});
用它:
<input dynamic-name="field.name" type="{{ field.type }}" placeholder="{{ field.name }}" ng-model="field.value" required>
演示
问题说明:
默认情况下,输入元件使用ngModelController(
ng-model)调用
FormController.$addControl时它们与注册其自身,并在暴露的属性
FormController与
输入的名称属性 是
{{ field.name}}在这种情况下。因此,即使控制已注册,但你没有暴露在性能
FormController与命名的
firstName你只需要
{{field.name }}引用 的最后一个输入项
解决方案说明:
在此解决方案中,我创建了一个自定义指令,以
{{ field.name }}在运行时将替换为正确的名称。
有关为什么我必须使用
terminal:true,and的更多信息
priority:1000。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)