[英]Broadcast and on not working as desired
我正在尝试从第一个控制器进行广泛的转换,并在另一个控制器上监视该变量,并期望在第二个控制器上进行一些更改。 但是它不起作用。
以下是第一个控制器代码
$scope.gotoKBPage = function()
{
$location.path('/kb');
$rootScope.$broadcast('newVar',{id: "123"});
};
下面是第二个控制器代码,即/ kb页面
$scope.newPage = function()
{
$scope.pernotes = true; // this makes a section visible, but not happening
};
$rootScope.$on('newVar', function(event, data)
{
if(data)
{
$scope.newPage();
}
});
为了使此方法生效,我需要做任何明确的事情。
尝试这个:
$scope.newPage = function()
{
$scope.$apply();
$scope.pernotes = true; // this makes a section visible, but not happening
}
编辑:我已经测试。 它也应该在没有$ apply的情况下工作。 检查此链接: 小提琴
我认为您使用的是错误的方法。 如果只想将参数传递给新控制器,为什么不使用route参数呢? 请参阅本文档页面末尾的示例
请注意,在您的代码中,您是在广播消息后注册$on
的,因此它将无法正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.