Angularjs 服务回调以更新控制器的范围

2024-04-25

具有第三方库回调函数的服务:

mbAppModule.service('aService', function ($http) {
    this.data={"somedata":0};
    var m3rdPartLib="init";  // init    
    m3rdPartLib.on('timeupdate', function() {
        this.data.somedata=1;
    });
}

和一个控制器

mbAppModule.controller({
    MController: function ($scope, $http, mService) {
        $scope.mService= mService;    
    });
});

html页面

{{mService.data.somedata}}

问题 :

m3rdPartLib.on() 是一个第三方库回调函数,我在服务中使用它。我想在用户界面中显示它,因为它正在更新。回调时,值发生变化,但未反映在用户界面上。

阅读一些文档,发现可以调用 $rootScope.$apply,但我在服务中没有 $scope / $rootScope 的引用。


你可以依赖$rootScope并致电申请您的服务。

mbAppModule.service('aService', ["$http", "$rootScope", function ($http, $rootScope) {
    this.data = {
        "somedata": 0
    };
    var m3rdPartLib = "init"; // init    
    m3rdPartLib.on('timeupdate', function () {
        $rootScope.$apply(function(){
            this.data.somedata = 1;
        });
    });
}]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angularjs 服务回调以更新控制器的范围 的相关文章

随机推荐