1
我正在研究angularJS,但我仍然是初學者...而我有一個簡單的問題,我希望你能回答。使用location.pathAngularJS等待數據呈現視圖?
app.config(function($routeProvider) {
$routeProvider
.when('/', {
controller:'ListCtrl',
templateUrl:'list.html'
})
.when('/update/:itemId', {
controller:'UpdateCtrl',
templateUrl:'update.html'
})
[...]
.otherwise({
redirectTo:'/'
});
});
從「名單」的觀點,我重新根「更新」的觀點:
app.controller('ListCtrl', function($scope, albumFactory, $location, $http) {
$scope.albums = albumFactory.getList().then(function(albums){
$scope.albums = albums;
});
[...]
$scope.updateAlbum = function(index) {
console.log('updateAlbum()');
$location.path("/update/" + $scope.albums.albums[index].id);
}
在更新
我得到了以下路由控制器我需要首先檢索細節以預先填充視圖。爲此,我使用的工廠如下:
app.controller('UpdateCtrl', function($scope, albumFactory, $location, $routeParams, $http) {
$scope.album = albumFactory.get($routeParams.itemId).then(function(album){
$scope.album = album;
});
所以我的問題是視圖首先呈現(顯示)爲空。一旦來自工廠的Ajax調用完成,作用域就會更新並且視圖被填充。
是否可以在渲染局部視圖之前等待工廠回覆? 或者我做錯了什麼?
的目的是爲了避免在很短的時間,其中的觀點是空的......(不是真正用戶友好的)
請參閱'resolve:'[docs](http://docs.angularjs.org/api/ngRoute.$routeProvider) – calebboyd