更新时间:2023-11-21 10:47:19
您可以通过使用角度事件 $broadcast
或 $emit
来实现这一点.
You could achieve this by using angular events $broadcast
or $emit
.
在您的情况下 $broadcast
会有所帮助,您需要在 $rootscope
中广播您的事件,该事件可以被具有相同事件名称的 $on
的所有子作用域监听.
In your case $broadcast
would be helpful,
You need to broadcast your event in $rootscope
that can be listen by all the child scopes which has $on
with same event name.
代码
.service('SocketService', function($http, $rootScope, $q) {
this.connect = function() {
var socket = io();
socket.on('connect', function() {
// Call a function named 'someFunction' in controller 'ChatController'
$rootScope.$broadcast('eventFired', {
data: 'something'
});
});
}
});
.controller('ChatController', function('SocketService', $scope) {
$scope.someFunction = function() {
// Some Code Here
}
$scope.$on('eventFired', function(event, data) {
$scope.someFunction();
})
});
希望能帮到你,谢谢.