javascript - 创建服务时,$scope注入报错
本文介绍了javascript - 创建服务时,$scope注入报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
define(['app'], function(app){
function HttpService($scope, $q, $http, appConfig){
var url = appConfig.BASE_URL,
ret = {ok: 0, data: {ok: 0}};
function getA(){
var deferred = $q.defer();
deferred.resolve(ret.data); // 模拟请求成功
return deferred.promise;
}
function getB(){
var deferred = $q.defer();
deferred.resolve(ret.data);
return deferred.promise;
};
return {
getA: getA,
getB: getB
}
}
return app.factory('HttpService', [
'$scope',
'$q',
'$http',
'appConfig',
HttpService
]);
});
注入$scope,报错
干掉$scope,能正常跑
求解
解决方案
首先,你犯的错误是,HttpService
里压根就没用$scope
,注入她干嘛?给自己找不自在么^^?
其次,我假设你就是故意想注入$scope
,虽不用,但想知道错在哪里。 那么我们先说factory
,她本身是一种单例的存在,但$scope
是么?看下面文档:
注意我选中部分,文档说一个angular
应用只有一个rootScope
,但可以有多个$scope
,那么,既然HttpService
是单例,那给他注入的$scope
是谁?从哪里来?理解清楚为什么Controller
里可以注入$scope
很重要,再看文档:
注意我选中部分。
多读文档是好习惯哦:scope
这篇关于javascript - 创建服务时,$scope注入报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文