4

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

我有以下问题:

1)文本框绑定到模型uname,但加载文本框不显示值。为什么会这样?

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

3)如何ng-model从隔离作用域指令的链接函数内部查找父作用域的变化。

4

1 回答 1

3

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

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

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

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

$observe 仅与使用“@”语法的隔离范围属性一起使用。

于 2013-03-02T22:56:18.980 回答