Javascript AngularJS:使用控制器解析时正确的可缩小语法
在呈现新视图之前,我将使用两个控制器的“解析”功能来获取一些数据,如下所示:Javascript AngularJS:使用控制器解析时正确的可缩小语法,javascript,angularjs,minify,Javascript,Angularjs,Minify,在呈现新视图之前,我将使用两个控制器的“解析”功能来获取一些数据,如下所示: HomeCtrl.resolve = { pictures: function(Picture) { return Picture.getall(); } }; 如何编写此代码,以使作为参数传递的图片服务在缩小时不会被覆盖?您可以使用以下模式插入依赖项,这是缩小证明 HomeCtrl.resolve = { pictures : ['Picture', function(Pi
HomeCtrl.resolve = {
pictures: function(Picture) {
return Picture.getall();
}
};
如何编写此代码,以使作为参数传递的图片服务在缩小时不会被覆盖?您可以使用以下模式插入依赖项,这是缩小证明
HomeCtrl.resolve = {
pictures : ['Picture', function(Picture) {
return Picture.getall();
}]
};
使解析函数小型化安全的另一种方法:
HomeCtrl.resolve = {
pictures: getPictures
};
getPictures.$inject = ['Picture'];
function getPictures(Picture){
return Picture.getall();
}
这种技术利用了javascript中函数也是对象的事实,因此可以具有属性
有关更多信息,请转到并搜索“$inject”。angular使用DI的任何地方,您都可以使用此语法。遗憾的是,它不适合我。HomeCtrl.resolve={pictures:['$q',函数(a){}]};将报告未知提供者:aProvider@wukong如果您需要注入
$q
服务,您应该这样做HomeCtrl.resolve={pictures:['$q',function($q){}]}
,如果您需要注入$q
服务和a
服务,您应该这样做HomeCtrl.resolve={pictures:['$q','a',function($q,a){}
@acrmui sry,这是我的错。解决方案有效。我的代码类似于HomeCtrl.resolve=['$q',function($q){}]
。我希望angular足够聪明来处理这种情况,因为我只有一个依赖项需要解决。事实证明,由于resolve
是数组,也是一个对象。angular会将其视为常规对象!很难发现问题,因为代码在不缩小的情况下工作。从angular的角度来看,对象s{“0”:“$q”,“1”:函数($q){}}
。我们需要用{something:[“$q”,函数($q){}]}}
来包装函数。为什么图坦卡门不这么说?!我完全忘记了DI问题!