在隔离范围指令监视中未观察到表单元素ngmodelchange

时间:2013-03-02 21:09:44

标签: angularjs angularjs-directive

在发布这个小提琴之前,我检查了SO的类似问题。答案很少,但所有这些都不是表格元素。 http://jsfiddle.net/dgQAd/

我有以下问题:

1)文本框绑定到模型uname,但是onload文本框没有显示值。为什么会这样?

2)在为此寻找答案时,我看到类似require:ngModel的东西,并在链接函数中注入一个控制器,如何在指令的链接函数中使用这个注入的控制器。

3)如何从隔离范围指令的链接函数内查找父范围ng-model中的更改。

1 个答案:

答案 0 :(得分:3)

我能够让ng-model使用隔离范围的唯一方法是使用隔离范围属性的相同名称:scope:{ "uname":"=ngModel" }。你的$ watch现在可以使用了。 有关详情,请参阅https://stackoverflow.com/a/14792601/215945

当指令require是另一个指令的控制器时,该控制器可用作链接功能的第四个选项。在你的小提琴中,这就是你所谓的ngModel

link:function(scope,el,attrs,ngModel){

通常,我更喜欢将此ngModelCtrl命名为提醒我它是一个控制器。

$ observe仅用于使用'@'语法的隔离范围属性。