我正在根据ui-router状态制作面包屑组件。所以这就是我所取得的成就。
$stateProvider.state('home', {
// custom property
breadcrumb: 'Home',
// other properties
// ...
});
$stateProvider.state('home.profile', {
breadcrumb: 'Profile',
// ...
});
所以这很好用,当我进入' home.profile'州,我得到" Home / Profile"面包屑。但是如何显示动态数据呢?喜欢用户名。我喜欢这样的事情:
$stateProvider.state('home.profile', {
resolve: {
currentUser: ($http) => {
return $http.get('current-user');
}
},
// I would like to "inject" the resolved currentUser
breadcrumb: (currentUser) => {
return currentUser.username;
}
});
我知道使用组件有一个$ resolve服务,你可以这样做:
<my-component user="$resolve.currentUser.username"></my-component>
有什么想法吗?
答案 0 :(得分:0)
对于您想要解析customData
的用例不太确定,但是您可以将已解析的数据注入控制器。
$stateProvider.state('home.profile', {
resolve: {
currentUser: ($http) => {
return $http.get('current-user');
}
},
});
并在您的控制器中:
angular.module('app')
.controller('profileCtrl', ['$scope', 'currentUser', function($scope, currentUser) {
// you can be sure the data will be here because resolve are resolved before controller is instantiated
$scope.UserName = currentUser.username;
}]);
然后在您的视图中,它将非常直观:
<my-component user="UserName"></my-component> //depends how your directive is binded