【发布时间】:2015-04-17 05:24:11
【问题描述】:
我有几个依赖于服务器数据的屏幕和控制器。因此,我想通过路由器解析功能来解决数据依赖关系,以便在渲染屏幕之前确保所有数据都可以通过 Promise 获得。但是,我不确定我是否正确理解了用法,因为以下示例似乎不起作用。为什么?
angular.module('app',['ngRoute'])
.service('Data1', function ($q, $routeProvider, $http) {
var self = this;
this.fetch = function() {return $http.get('/json/data1',{id:$routeProvider.id})}
}
.service('Data2', function ($q, $routeProvider, $http) {
var self = this;
this.fetch = function() {return $http.get('/json/data2',{id:$routeProvider.id})}
}
.config(function($routeProvider){
§routeProvider.when('/:id',{
controller:'TestCtrl',
templateUrl:'template.html',
resolve: {
data1: function (Data1) { return Data1.fetch(); },
data1: function (Data2) { return Data2.fetch(); }
}
});
})
.controller('TestCtrl', function($location, $routeParams, $http, data1,data2) {
console.log(data1);
console.log(data2);
});
【问题讨论】:
-
我明白了,您想使用
$routeProvider路由上的resolve属性从您的服务加载数据,然后将它们注入您的控制器? -
没错,这就是我想做的事
-
或者这是个坏主意?
-
不,这完全合理。他们专门为此构建了功能。我现在正在为您编写一个示例。
标签: javascript angularjs