通过回调其他控制器来共享promise中的数据

时间:2015-04-29 09:48:52

标签: angularjs promise angular-promise

控制器A通过promise发送请求。在另一个控制器B中同时运行回调函数的最佳方法是什么?通过原始回调中的服务进行广播,并在另一个控制器中进行侦听。是否有可能将承诺传递给控制器​​B?

选项1:

// controller A
service.doAjax().then( function( data ) { 
// controller A callback 
// should I broadcast "data" and listen for the event in controller B ?
} );

// controller B
$rootScope.$on();
// ... listen for the event sent from controller A to get "data

选项2:

// controller A
var promise = service.doAjax(); 
shareService.sharePromise( promise ); // Sharing the promise with broadcast

// controller B
// get promise from shareService via $on()
promise.then( function( data) {} );

选项2的问题是回调函数将被执行多次。我不想共享数据,而是执行回调。

0 个答案:

没有答案