我有这样的代码:
angular.module('app')
.factory('ME', function($http, $location, $rootScope){
return {
search: function(search_data, success, $rootScope) {
$rootScope.errors = "lalala";
}
}
});
当我调用函数search()并调试时,我收到一条错误消息,指出$rootScope
未定义。如何在工厂中使用$rootScope
?
答案 0 :(得分:2)
我的问题的答案在于我对这个问题的第一次评论。为了清除此消息,您需要从$rootScope
函数参数中删除 search
。 - function(search_data, success, $rootScope)
。 这就是清除结果的原因。
但是我想发布更多内容,这是一个评论,应该修改这种方法,并且可能不首先使用根范围。在这种情况下,它可能应该,因为我们正在设置错误消息,但如果它是任何其他值,那么你应该摆脱$rootScope
并添加局部变量,稍后可以从函数方法返回。像这样:
angular.module('app')
.factory('ME', function($http, $location, $rootScope){
var result;
return {
search: function(search_data, success) {
result = "lalala";
},
update: function(){
result = "tralala";
},
message: function(){return result;}
}
});
我添加这个作为进一步的解释,因为一般来说我希望能更好地理解何时以及如何使用rootScopes