每个视图我有一个控制器。我想在用户单击一个向数据库添加元素的按钮后,然后该元素出现在另一个视图中。
我尝试使用$ emit和$ on,但问题是我在每个视图中都有一个控制器,控制器不在同一个视图中。
广播的控制器:
angular.module('clientApp')
.controller('MovieViewCtrl',[ '$scope', '$rootScope' ,'$routeParams','$location' ,'Movie', 'Like', 'auth', function ( $scope, rootScope ,$routeParams,$location ,Movie, Like, auth) {
//Another code here....
Like.post($scope.like).then(function(){
$rootScope.$broadcast('newLike', 'new like was added');
$location.path('/movie/' + $routeParams.id)
});
接收的控制器:
angular.module('clientApp')
.controller('MainCtrl'['$scope','$rootScope','Movie','Like','$location',
function ($scope,$rootScope,$routeParams,Movie,Like,$location) {
$rootScope.$on('newLike', function (event, arg) {
$scope.receiver = 'got your ' + arg;
console.log($scope.receiver);
$scope.likes = Like.getList({limit:5}).$object;
});
}
]);