请检查this Plunk
我正在做的是我遵循AngularJS模块:
var synergy_module = angular.module('synergy', ['ngRoute'])
.config(function($provide, $routeProvider, $httpProvider) {
$routeProvider.when('/', {
template: '<div>{{here}}</div>',
controller: SpecificationCtrl,
resolve: {
w: "myFct"
}
});
$routeProvider.otherwise({
redirectTo: '/'
});
});
synergy_module.factory("myFct", ["$http",
function($http) {
return $http.get("http://api.openweathermap.org/data/2.5/weather?q=London,uk");
}
]).factory("my.Fct", ["$http",
function($http) {
var o = {
getWeather: function() {
return $http.get("http://api.openweathermap.org/data/2.5/weather?q=London,uk");
}
}
return o;
}
])
function SpecificationCtrl($scope, w) {
$scope.here = w.data;
}
这可以正常工作,因为myFct
工厂有一个简单的名称并返回$promise
,但它不是很有用。我的工厂看起来更像my.Fct
:
$promise
)我怎样才能通过这个&#34;复杂的&#34; my.Fct
出厂解析为字符串并指定解析时应使用哪个工厂方法?
更新 好的,基于更多的搜索,这对我有用:
resolve: {w: ["my.Fct",function (myFct) {
return myFct.getWeather();
}]}
但是代码要多得多,使用字符串似乎对我来说更具可读性......