我认为这可能是 ui-router 解析的最佳用例。
无论如何,我更愿意将我的 http 调用包装到服务中,并将该服务调用到解析中,而不是直接使用 $http 。
这可能看起来像这样:
app.service('FooService',function($http){
var service={};
service.getFoo = function(){
return $http({
method: 'GET',
url: '/api/something'
});
}
return service;
});
因此,您可以在您的应用程序中调用此方法(并同时集中它)。
在控制器中:
app.controller('MyController', function($scope, FooService) {
$scope.controllerName = "MyController";
FooService.getFoo().success(function(foo){
$scope.foo = foo
});
});
决心:
$stateProvider
.state('test', {
url: '/test',
templateUrl: 'partial.template.html',
resolve : {
foo : function(FooService) {
return FooService.getFoo();
},
},
controller: 'MyController',
})
继续采用这种方法,你的路就很好了。
希望有帮助。
编辑:建立了一个plunker http://plnkr.co/edit/LuP6nzucnXaq306qTVIL?p=preview添加论文方法的具体示例。