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