我在一个页面上有两个独立的控制器。其中一个播放一个事件,另一个监听它。当侦听的事件收到事件时,它会更改它的范围变量,然后打印页面。出于某种原因,我认为范围适用,但我不认为它适用于该页面。
$scope.$on('valuesUpdated', function(){
$scope.Name = dataGrabber.Name;
$scope.Address = dataGrabber.Address;
window.print();
});
答案 0 :(得分:1)
鉴于您提供的信息,我认为这是已知的范围隐藏问题。
范围继承通常很简单,你甚至不需要知道它正在发生......直到你尝试双向数据绑定(即表单元素,ng-model)到一个原语(例如,数字) ,string,boolean)在子范围内从父范围定义。它不像大多数人期望的那样工作。会发生什么是子范围获取其自己的属性,该属性隐藏/隐藏同名的父属性。这不是AngularJS正在做的事情 - 这就是JavaScript原型继承的工作原理。 More about it here...
解决方案是使用对象表示法:
$scope.data.Name
或控制器作为控制器的符号。