隐藏空模板,直到使用Restangular和UI Router加载数据
Hiding empty templates until the data is loaded with Restangular and UI-Router
我使用ocLazyLoad
进行依赖注入并加载CSS&JS点播。在数据加载之前,我不会更改UI路由器state
。我还使用Restangular
来连接API。
现在如何从解析状态调用Restangular函数?这是我的路线:
.state('admin.users',{
url: "/users",
templateUrl: "user/views/users.html",
controller:'UserListCtrl',
resolve: {
dep: ['$ocLazyLoad',
function( $ocLazyLoad ){
return $ocLazyLoad.load(['UserService.js']).then(
function(){
return $ocLazyLoad.load(['UserListCtrl.js']);
}
);
}],
resolvedItems: userlist()
}
})
我的UserListCtrl
是:
app.controller('UserListCtrl',function($scope,UserService){
/*
* Get all users
*/
userlist = function(){
UserService.list().then(function(data){
$scope.users = data;
$scope.pagination = $scope.users.metadata;
$scope.maxSize = 5;
});
}
})
我的UserService
是:
angular.module('app').service('UserService', function($rootScope, Restangular) {
/*
* Build collection /user
*/
var _userService = Restangular.all('user');
/*
* Get list of users
*/
this.list = function() {
// GET /api/user
return _userService.getList();
};
})
您不能在配置组件中从控制器调用函数。为了等待打开页面的后端响应,您应该使用ui路由器的解析功能。
您已经定义了resolvedItems
,所以在其中发出userList请求并像这样解决响应。。。
resolve: {
dep: ['$ocLazyLoad',
function( $ocLazyLoad ){
return $ocLazyLoad.load(['UserService.js']).then(
function(){
return $ocLazyLoad.load(['UserListCtrl.js']);
}
);
}],
resolvedItems: ['UserService', function(UserService){
return UserService.list().then(function(response){
return response;
})
}]
}
之后,您应该在控制器上注入resolvedItems
,然后页面将不会显示,直到您的请求完成。。。
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI自动完成突然停止工作
- 如何使用skip参数使用angular ui引导进行服务器端分页
- AngularJS UI路由器不能像ng路由器那样工作
- 我可以更改剑道UI网格吗's的外键值
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 停止jQuery UI滑块移动超过给定值
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- Jquery UI自动完成无法工作
- 语义ui如何使用javascript启用或禁用下拉列表
- jquery ui滑块上的滑块值
- jQuery UI可排序-多连接列表拖动
- 如何在Angular UI网格中选择下一行
- 对具有ui typeahead的对象中的值执行orderBy
- AngularJS ui路由器html5模式中断路由
- EJS中的Angularjs-Ui路由器参数
- 使用导航属性创建Kendo UI网格模型的问题
- 隐藏空模板,直到使用Restangular和UI Router加载数据
- 如何使用 Restangular 填充 jQuery UI Select2