$ scope。$ watch值包含在promise $ q.when(value)

时间:2016-12-13 10:59:26

标签: javascript angularjs promise angular-promise angular-services

在我的应用程序中,我有一个异步返回缓存值的服务:

    .service('StateService', [
        '$q',
        function ($q) {
            var value;
            // ...
            // ...
            function getValue() {
                return $q.when(value);
            }
            // ...
            // ...
            return {
                getValue: getValue
                // ...
                // ...
            };
        }
    ]);

静态变量“value”通过同一服务中的setter更新。 要求让getter getValue()异步工作 - 这个想法是在将来实现一个id缓存。

在主控制器中,我需要对$watch进行StateService.getValue()更改,如果更改了value则更新范围。

$watch是否有可能$scope.$watch承诺(实际上不是资源调用,只是承诺包含的静态值)?

也许通过在每个摘要中展开它们并比较旧的新值?

1 个答案:

答案 0 :(得分:1)

不可能,最好的选择是在q中的$ scope中进行$ watch存储服务的价值