我正在研究如何强制控制器从另一个控制器刷新。
为此我使用简单的测试功能:
function test() { alert('test'); }
我认为使用事件是解决此问题的最佳方法。
我使用了以下代码:
第一个控制器
.controller('firstcontroller', function($rootScope,$scope, $http,$timeout) {
$scope.$emit('testevent'); })
第二个控制器
.controller('firstcontroller', function($rootScope,$scope, $http,$timeout) {
$scope.$on('refreshr', function (event) {
alert('test');
}); })
但这不起作用!有什么建议吗?
答案 0 :(得分:2)
您可以使用$ rootScope。$ broadcast函数向所有子范围广播事件。然后在你的控制器中你做$ scope。$ on。但请确保事件名称相同。
这应该是它。
第一个控制器
typedef
第二个控制器
.controller('firstcontroller', function($rootScope,$scope, $http,$timeout) {
$rootScope.$broadcast('testevent');
})
答案 1 :(得分:1)
您event names
不同,也在rootScope
级广播。
.controller('firstcontroller', function($rootScope,$scope, $http,$timeout) {
$rootScope.$broadcast('testevent');
})
.controller('secondcontroller', function($rootScope,$scope, $http,$timeout) {
$scope.$on('testevent', function (event) {
alert('test');
})
})