我正在使用普通的$ rootScope。$ broadcast将控制转移到另一个控制器。另一个控制器正在尝试基于此调用函数。问题是这个函数可以被称为$ scope函数,或者它始终是控制器中的私有函数。所以当我写下面的内容时:
<div class="row" style="height:300px;">
<div class="col-md-3">
<div class="thumbnail">
<a href="@(Url.Content("~/ProjectTimer/LITL.DesktopTimer.application"))" >
</a>
<div class="caption" style="height:300px;">
<p>Run the Timer App on your computer to keep track of your time.</p>
<a class="btn btn-primary" href="@(Url.Content("~/ProjectTimer/LITL.DesktopTimer.application"))">
<span class="glyphicon glyphicon-download"></span> Download
</a>
</div>
</div>
</div>
<div class="col-md-9" style="height:300px; background: #f0e68c">
<div class="thumbnail" style="width:100%; height:300px">
<a class="btn btn-block btn-primary" style="display: block; width: 100%; height:100%; font-size:large" href="@(Url.Content("~/ProjectTimer/LITL.DesktopTimer.application"))">
<span class="glyphicon glyphicon-share" style="font-size: 300px;">LIRA</span>
</a>
</div>
</div>
</div>
它按预期工作。但是当我写道:
$scope.$on('aRequest',function(){console.log('it works')});
它不起作用。我也没有在控制台中看到语法错误。我错过了什么吗?
喜欢添加,当这个调用如下所示,它也有效:
$scope.$on('aRequest',$scope.someFunction());
答案 0 :(得分:6)
只需在没有$scope.$on('toggleNavRequest',$scope.someFunction);
的情况下编写()
- 您正在传递对函数的引用,而不是实际触发它(Angular将触发函数调用)
示例:
$scope.someFunction = function() {
console.log("Hi");
};
$scope.$on('toggleNavRequest',$scope.someFunction);