我正在使用普通的$ rootScope.$ broadcast将控制转移到另一个控制器.另一个控制器正在尝试基于此调用函数.问题是这个函数可以被称为$ scope函数,或者它始终是控制器中的私有函数.所以当我写下面的内容时:
$scope.$on('aRequest',function(){console.log('it works')});
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是当我写道:
$scope.$on('aRequest',$scope.someFunction());
Run Code Online (Sandbox Code Playgroud)
它不起作用.我也没有在控制台中看到语法错误.我错过了什么吗?
喜欢添加,当这个调用如下所示,它的工作原理:
$scope.$on('aRequest',iWorkProperly);
var iWorkProperly = function(){};
Run Code Online (Sandbox Code Playgroud)
只写$scope.$on('toggleNavRequest',$scope.someFunction);没有()- 你传递对函数的引用,而不是实际触发它(Angular会触发函数调用)
例:
$scope.someFunction = function() {
console.log("Hi");
};
$scope.$on('toggleNavRequest',$scope.someFunction);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |