AngularJS Scope不适用于html页面

时间:2014-11-06 21:28:46

标签: javascript angularjs

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

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

1 个答案:

答案 0 :(得分:1)

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

  

范围继承通常很简单,你甚至不需要知道它正在发生......直到你尝试双向数据绑定(即表单元素,ng-model)到一个原语(例如,数字) ,string,boolean)在子范围内从父范围定义。它不像大多数人期望的那样工作。会发生什么是子范围获取其自己的属性,该属性隐藏/隐藏同名的父属性。这不是AngularJS正在做的事情 - 这就是JavaScript原型继承的工作原理。 More about it here...

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

$scope.data.Name

或控制器作为控制器的符号。