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



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

如果它是由控制器启动的异步调用的结果,请使用promise(在q上搜索并解析)。

如果是由于控制器未启动而发生的事情,请使用手表。您可以分配一个作用域变量来指向您的服务,以监视服务公开的变量(并在视图中绑定到它们)。

第二种模式的代码思想:

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

在视图中:

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

最新更新