我知道您应该通过服务在控制器之间传递数据,但我不知道如何在这种情况下执行此操作。
假设您有一个具有方法的ControllerA:
ControllerA.executePromise()
当承诺完成后,我想提醒服务它已完成。
然后我想通过服务告知ControllerB,ControllerA的承诺已经完成。
我知道我可以在承诺完成之后调用一个方法来告诉服务它已经完成,但是我怎么能通过服务立即告诉控制器B承诺是否完成?
答案 0 :(得分:0)
我建议您始终使用服务/工厂在控制器(以及指令)之间共享数据,并在两侧进行注入。
之后,只需使用您的承诺解析功能来更新服务价值。
app.factory('SharedService', function() {
return {
sharedObject: {
value: '',
value2: ''
}
};
});
app.controller('FirstCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.directive('myDirective',['SharedService', function(SharedService){
return{
restrict: 'E',
link: function(scope){
scope.model = SharedService.sharedObject;
},
template: '<div><input type="text" ng-model="model.value"/></div>'
}
}]);
这是一个显示如何完成的傻瓜: http://plnkr.co/edit/Q1VdKJP2tpvqqJL1LF6m