具有第三方库回调函数的服务:
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的引用。
使用$scope$观看
功能。看看我的胳膊。我没有你的库,所以我只模拟它-值在5秒后从0变为1。
我需要从服务中更新一个输入字段,因为它有监听器,而没有监听器会随机动态地更改数据。
这也可用于调用控制器中的作用域函数:
//scope will be set to current scope of a controller
//which has an ng-view containing this element
var scope = angular.element('#input-element').scope();
//wrap changes in an apply call to make sure view and model are consistent
scope.$apply(function() {
scope.object.data = value;
});
感谢这篇文章:如何使用AngularJS访问浏览器控制台中的$scope变量?
您可以依赖$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;
});
});
}]);
问题内容: 我正在使用socket.io在我的应用中启用聊天功能,并且正在使用一项服务来执行所有套接字操作。当出现消息时,我想从服务中触发控制器的功能以在UI中进行一些更改。所以我想知道如何从服务访问控制器的功能。样例代码: 这是服务的示例代码。 现在控制器的代码 问题答案: 您可以通过使用角度事件或来实现此目的。 在您的情况下会有所帮助,您需要广播事件,以便具有相同事件名称的所有子作用域都可以监
问题内容: 我已经阅读了几篇有关angularjs实体正确用法的文章:服务,工厂,控制器和指令。 我特别关心的是控制器和服务的比较。但是,没有一个帖子告诉我什么是控制器可以执行服务不能执行的操作,反之亦然。 可以列出它吗?或者仅仅是在angular的用法上规范? 问题答案: 控制器 通常用于绑定视图。控制器管理视图的生命周期,应将其视为视图控制器。将为视图的每个实例创建一个新的控制器,这意味着,如
问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码
目标是打印标签的当前文本。标签在整个程序中不断变化,使用当前的方法,我只能检索标签的初始化值。 我用来检索控制器实例的内容:
问题内容: 我已经用AngularJS编写了一个服务,但是我无法使其与角度种子处理方式一起使用。 控制器代码如下: 请注意,注释掉的部分工作正常,但我想像(推荐的)第二种方式来处理它。 我得到的错误是照片是未定义的,所以我的猜测是我传递(注入)它的方法是错误的,但是我找不到正确的方法 问题答案: 您需要定义服务: 一些参考: http://docs.angularjs.org/api/angula
问题内容: 我正在编写一个angularJS应用。在这个特定的控制器中,我通过该服务打开一个新的浏览器窗口。但是在新窗口中,所有变量都丢失了。 我尝试使用,但这不起作用。实际上,在新的浏览器窗口中,所有应用程序服务,控制器或作用域都根本无效,这是真的吗?有没有办法打开新的浏览器窗口,但仍然使新窗口与旧窗口属于同一个角度应用程序?我需要访问一些angularJS服务以及打开该新窗口的控制器范围。这有