gpt4 book ai didi

javascript - $rootScope.$on 在服务或工厂中

转载 作者:行者123 更新时间:2023-11-30 17:05:51 25 4
gpt4 key购买 nike

我对服务或工厂中的 $rootScope.$on 方法有一个奇怪的问题。

我有一个服务:

app.service('testService', function($rootScope){

this.var1 = 5;

this.change = function(n){
this.var1 = n;
}

$rootScope.$on('service', function(event, n){
//this.var1 = n;
console.log(this.var1);

});
});

问题是应该在控制台打印5。但我无法访问 $rootScope.$on 方法中的服务变量 ...

她是控制者:

app.controller( 'HelloCtrl', function($scope, testService, testFactory, $rootScope)
{
$scope.fromService = testService;

$rootScope.$broadcast("service", 12);
});

那是 JSFiddle:jsFiddle

有什么问题?

我该怎么办?

最佳答案

您需要将 this 存储在另一个变量中以进行关闭。

内部回调 this 是另一个...

希望对您有所帮助:

//angular.js example for factory vs service
var app = angular.module('myApp', []);

app.service('testService', function($rootScope){

var testService = this;

this.var1 = 5;

this.change = function(n){
this.var1 = n;
}

$rootScope.$on('service', function(event, n){
//this.var1 = n;
console.log(testService.var1);

});
});

app.controller( 'HelloCtrl', function($scope, testService, $rootScope)
{
$scope.fromService = testService;

$rootScope.$broadcast("service", 12);
});

http://jsfiddle.net/mc4ow2b6/4/

关于javascript - $rootScope.$on 在服务或工厂中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28050643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com