具有第三方库回调功能的服务:
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; }); }); }]);