我需要一些帮助。我试图返回值rom actory方法,但无法做到这一点得到一些预期的错误。我在下面解释我的代码。
compliance.factory('showNabh',function($window,$timeout){
var defaultView=function(){
return true;
}
var auditView=function(){
return false;
}
})
compliance.controller('NABHParentController',function($scope,$http,$state,$window,$location,$filter,showNabh){
$scope.showNabh=showNabh.defaultView();
})
我收到以下错误。
Error: [$injector:undef] http://errors.angularjs.org/1.4.6/$injector/undef?p0=showNabh
at angularjs.js:6
at Object.$get (angularjs.js:37)
at Object.e [as invoke] (angularjs.js:39)
at angularjs.js:41
at d (angularjs.js:38)
at e (angularjs.js:39)
at Object.instantiate (angularjs.js:39)
at angularjs.js:80
at q (angularuirouter.js:7)
at A (angularuirouter.js:7)
我需要在此时调用defaultView
函数,我将获得true
值,如果我将调用auditView
,我将获得错误值。实际上我需要$scope.showNabh
变量全局,以便我可以在任何控制器中为此变量赋值。请帮忙。
答案 0 :(得分:1)
你工厂里没有退货声明,所以它隐含地返回undefined。试试这个:
compliance.factory('showNabh',function($window,$timeout){
var defaultView=function(){
return true;
}
var auditView=function(){
return false;
}
return {
defaultView: defaultView,
auditView: auditView
};
})