我正在尝试编写一个用自定义输入字段替换输入字段的指令。但是,我无法使数据绑定工作,因为模型没有在指令输入字段中显示。
我在这里创建了一个jsFiddle:
http://jsfiddle.net/6HcGS/392/
我想我真的不知道在这里放置数据绑定的工作原因:
tElement.replaceWith('<input ng-model="ngModel" type="text" />');
如果有人能帮助我,我会非常感激,因为这对我来说一整天都是一个问题。
干杯!
答案 0 :(得分:1)
tElement.replaceWith('<input ng-model="ngModel" type="text" />');
Angularjs不知道ngModel
是绑定。它被解释为一个简单的字符串。所以你需要告诉棱角分明。
我已经更新了你的jsfiddle,告诉你如何做到这一点:
http://jsfiddle.net/6HcGS/393/
但是你可以通过删除指令中的隔离范围来更简单地做到: http://jsfiddle.net/6HcGS/394/
与已经提到的lort一样,属性在替换期间传递给元素。当然只有你不使用孤立的范围。
答案 1 :(得分:0)
我不明白你要做什么,但似乎只需要下面的代码示例:
angular.module('zippyModule', [])
.directive('zippy', function(){
return {
restrict: 'C',
replace: true,
template: '<textarea></textarea>',
}
});
此处将初始input
更改为textarea
。通过ng-model
绑定仍然有效,因为在替换期间不会从元素中删除其他属性。