如何在服务中发生某些事情时修改控制器中的var?

时间:2013-12-16 11:53:44

标签: angularjs

基本上我希望能够在发生某些事情时从服务进行广播。 实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果是由您的控制器发起的异步调用,请使用promises(谷歌上的q并解决)。

如果由于某些事情未能从您的控制器启动而导致某些事情发生,请使用watch。您可以指定范围变量以指向您的服务,以观察服务公开的变量(并在视图中绑定它们)。

第二种模式的代码理念:

function MyController($http, MyService) {
    $scope.myService = MyService;
    $scope.$watch("myService.aVariableInTheService", function() {
        console.log("aVariableInTheService has changed!");
    }
}

在视图中:

<div>A variable is {{myService.aVariableInTheService}}</div>