【发布时间】:2014-09-23 03:23:55
【问题描述】:
我无法理解执行以下操作的 Angular 方式...
我配置了一个路由器,一旦更改了路由并提供了 templateUrl,我想进行 Ajax 调用以获取一些 JSON 数据。
请注意,我不想等待获取模板,而是使用控制器获取 JSON 数据,因为这是两个串行 HTTP 调用。我想在获取模板的同时获取 JSON 数据。有没有众所周知的模式可以做到这一点?
如果我错了,请纠正我...现在,我知道我应该使用解析器,在该解析器中我将调用“数据提供者”,它将触发 HTTP 调用以获取 JSON 数据。该数据将提供给控制器。所以像这样......
app.config(['$routeProvider', 'data', function( routeProvider, dataProvider ) {
routeProvider.
when('/reports/:reportName', {
templateUrl: function( urlData ) {
return "/some/url/" + urlData.reportName + "/content";
},
resolve: {
reportData: function() {
return dataProvider.getData();
}
},
controller: 'reportRoutingCtrl'
});
}]);
app.controller('reportRoutingCtrl', ['$scope', 'reportData', 'reportName', function( scope, reportData ) {
console.dir( reportData );
}]);
这是正确的模式吗?如果是这样,我如何才能访问解析器中的“urlData”对象?
谢谢你的帮助!!
【问题讨论】:
-
是的,没关系...
$routeParams获取您的urlData
标签: ajax json angularjs user-interface angular-routing