2014-11-06 82 views
0

我在一个页面上有两个单独的控制器。其中一人播放一个事件,另一个听它。当侦听者接收到事件时,它会更改其范围变量,然后打印页面。出于某种原因,我看到应用范围,但我不认为它适用于该页面。AngularJS范围不适用于html页面

$scope.$on('valuesUpdated', function(){ 
    $scope.Name = dataGrabber.Name; 
    $scope.Address = dataGrabber.Address;  
    window.print(); 
}); 
+0

没有足够的数据来检测问题。请发布所有相关代码,或者更好地尝试在Fiddle/Plunker中重现此行为。 – 2014-11-06 21:41:15

回答

1

鉴于您提供的信息,我认为这是已知的范围隐藏问题。

范围继承通常是直截了当的,你甚至不需要知道它正在发生......直到你尝试双向数据绑定(即表单元素,ng模型)到一个基元例如,数字,字符串,布尔)在子作用域内的父作用域上定义。它不能像大多数人所期望的那样工作。会发生什么情况是,子作用域会获取自己的属性,该属性会隐藏/隐藏相同名称的父属性。这不是AngularJS正在做的 - 这是JavaScript原型继承的工作原理。 More about it here...

该解决方案将是使用对象表示法:

$scope.data.Name 

,或者控制器作为符号来表示控制器。