加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 08:14:23 所属栏目:安全 来源:网络整理
导读:具有第三方库回调功能的服务: mbAppModule.service('aService',function ($http) { this.data={"somedata":0}; var m3rdPartLib="init"; // init m3rdPartLib.on('timeupdate',function() { this.data.somedata=1; });} 和控制器 mbAppModule.controller({
具有第三方库回调功能的服务:
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()是我在服务中使用它的第三方库回调函数。我想在ui中显示它,因为它正在更新。在回调时,值正在变化,但不会反映在ui上。

阅读一些文档并找到$ rootScope。可以调用$ apply,但是我没有在服务中引用$ scope / $ rootScope。

您可以依赖$ rootScope并在您的服务中调用apply。
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;
        });
    });
}]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读