在某种情况下,我已经为下载了书面服务angular.js
,并且可以正常工作-但为了方便和易于阅读,我宁愿在代码中调用不同的名称。这不是真正的需求,只是一种愿望。
我可以在服务的实际源代码中进行更改,但这显然会导致各种问题。所以我想知道,这种事情可能吗?您是否可以在整个应用程序中“别名”服务,以便在通过控制器传递服务时可以对它进行不同的引用?例如...
var app = angular.module('demo', [ 'ngSomethingLongAndObtuseThatIsNotNecessary' ]);
app.controller('HomeController', function(ngSomethingLongAndObtuseThatIsNotNecessary){
ngSomethingLongAndObtuseThatIsNotNecessary.open();
});
var app = angular.module('demo', [ 'ngSomethingLongAndObtuseThatIsNotNecessary' ]);
var smallerName = ngSomethingLongAndObtuseThatIsNotNecessary;
app.controller('HomeController', function(smallerName){
smallerName.open();
});
我只是尝试这样做,将其分配给另一个变量,但没有用。
实际上,我确实做了一些工作,但是我不确定这是否会产生不良影响。
var app = angular.module('demo', [ 'ngSomethingLongAndObtuseThatIsNotNecessary' ]);
app.service('ngSmaller', function(ngSomethingLongAndObtuseThatIsNotNecessary) {
return ngSomethingLongAndObtuseThatIsNotNecessary;
});
app.controller('HomeController', function(ngSmaller){
ngSmaller.open();
});
您可以像这样注入它,这样,将服务名称作为数组中的字符串将解析为函数中的属性名称,ORDER很重要
app.controller('HomeController', ['ngSomethingLongAndObtuseThatIsNotNecessary', function(shortName){
shortName.open();
}]);
-编辑-----
或带喷油器
var injector = angular.injector(['demo', 'ng']);
var shortName = injector.get('ngSomethingLongAndObtuseThatIsNotNecessary');
app.controller('HomeController', function(shortName){
shortName.open();
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句