0

我正在尝试编写一个指令,用自定义输入字段替换输入字段。但是,由于模型未显示在指令输入字段中,因此我无法使数据绑定工作。

我在这里创建了一个 jsFiddle:

http://jsfiddle.net/6HcGS/392/

我想我真的不知道在这里放置什么数据绑定才能工作:

tElement.replaceWith('<input ng-model="ngModel" type="text" />');

如果有人可以帮助我,我将非常感激,因为这对我来说已经困扰了一整天了。

干杯!

4

2 回答 2

1
tElement.replaceWith('<input ng-model="ngModel" type="text" />');

Angularjs 不知道这ngModel是一个绑定。它被解释为一个简单的字符串。所以你需要告诉角度这个。我已经更新了您的 jsfiddle 以向您展示如何执行此操作:http: //jsfiddle.net/6HcGS/393/

但是您可以通过删除指令中的隔离范围来更简单地做到这一点:http: //jsfiddle.net/6HcGS/394/

就像已经提到的 lort 一样,属性在替换期间被传递给元素。当然,前提是您不使用隔离范围。

于 2013-10-25T21:39:01.783 回答
0

我不明白您要做什么,但您似乎只需要以下代码示例:

angular.module('zippyModule', [])
.directive('zippy', function(){
    return {
      restrict: 'C',
      replace: true,
      template: '<textarea></textarea>',
    }
});

这一个将初始更改inputtextarea. 绑定ng-model仍然有效,因为在替换期间不会从元素中删除其他属性。

于 2013-10-25T19:19:59.127 回答