【发布时间】:2013-10-24 23:28:53
【问题描述】:
我正在尝试创建一个指令,该指令将根据属性值将 ngModel 属性添加到标记中。例如:
angular.module('myModule').
directive('myDirective', function() {
return {
link: function(scope, elem, attrs) {
var modelName = 'myPrefix.' + attrs.name;
attrs.$set('ngModel', modelName);
}
};
});
这样这个html:
<input name="foo" my-directive></input>
编译成
<input name="foo" ng-model="myPrefix.foo" my-directive></input>
它接受输入的名称,附加一个前缀,并将 ngModel 属性设置为该值。
当我尝试在链接函数中执行此操作时,似乎 input 没有注册到 formController,因此 form.foo 返回未定义。
有可能完成我想做的事情吗?
编辑:
似乎在 HTML 上设置了 ngModel 属性,但它没有在表单中注册,或者 ngModelController 没有被实例化。如果我在范围内查看ngModel 的值,当我修改输入时它不会改变。
【问题讨论】:
标签: javascript angularjs angularjs-directive