当前位置: 首页 > 面试题库 >

$ watch ngModel从内部指令使用隔离范围

戚浩淼
2023-03-14
问题内容

我正在尝试从链接函数中查看模型值。

scope.$watch(attrs.ngModel, function() {
       console.log("Changed"); 
    });

当我在控制器内更改模型值时,不会触发$ watch函数。

$scope.myModel = "ACT";

$timeout(function() {
   $scope.myModel = "TOTALS"; 
}, 2000);

小提琴:http :
//jsfiddle.net/dkrotts/BtrZH/4/

我在这里想念什么?


问题答案:

问题是您$watch输入的attrs.ngModel内容等于“ myModel”。您的范围中没有“
myModel”绑定。您要$watch“建模”。那就是您指令范围内的内容。参见http://jsfiddle.net/BtrZH/5/



 类似资料:
  • 问题内容: 请在这里查看示例 角需要,,以在所述分离的范围对象从父范围访问它来限定。 在这里使用 那么,目的是什么?无法访问通过传递的所有属性。为什么不能将max的一个访问值代替 为什么要分配回来像? 由于此应用程序是由Angular作者编写的,因此我希望有一个理由。 谢谢。 问题答案: attrs的目的是什么? 在与指令相同的元素上定义的属性有几个用途: 它们是将信息传递到使用隔离范围的指令的唯

  • 那么,的目的是什么?不能访问通过传递的所有属性。为什么一个max的访问值不能作为而不是 为什么要像那样分配回来? 谢了。

  • 问题内容: 我想编写带有隔离范围的指令,但也想使该范围可用于父范围的控制器。我找到了这个解决方案: 参见柱塞。 我觉得这有点丑陋,因为它涉及用HTML编写属性,而在控制器的代码中,您无法确定范围属性的来源。有一个更好的方法吗? 编辑: 此外,似乎在运行控制器“ Main”时$ scope.popup甚至不可用。指令的链接功能尚未执行? 问题答案: 为了保持适当的关注点分离,您不应该混合作用域。更不

  • 如果不使用隔离作用域,我似乎找不到从指令中调用父作用域上的函数的方法。我知道如果我使用隔离作用域,我可以使用“ 在这个简单的示例中,我想显示一个JavaScript确认对话框,并且只有在确认对话框中单击“确定”时才调用doIt()。使用隔离范围很简单。指令如下所示: 但问题是,因为我使用的是隔离作用域,所以上面示例中的ng hide不再针对父作用域执行,而是在隔离作用域中执行(因为在任何指令上使用

  • 问题内容: 等号后的问号有特殊含义吗?即: 上面的意思是“无法解决’foo’时不会引发错误?” 问题答案: 是: “隔离”范围采用对象散列,该对象散列定义了一组从父范围派生的局部范围属性。这些本地属性对于为模板的别名设置别名很有用。本地定义是本地范围属性与其源的哈希值: 或-在本地范围属性和通过属性值定义的名称的父范围属性之间建立双向绑定。如果未指定名称,则假定属性名称与本地名称相同。给定 和的窗

  • 问题内容: 我为对话框编写了一个指令(myPopup),并为拖动该对话框编写了另一个指令(myDraggable),但是我总是收到错误消息: 多个指令[myPopup,myDraggable]要求新的/隔离的范围 这是一个柱塞:http ://plnkr.co/edit/kMQ0hK5RnVw5xOBdDq5P?p=preview 我能做什么? JS代码: 问题答案: 从文档: 应用于同一元素的多