gre*_*emo 8 angularjs angular-ui angular-ui-router
我的州等级是(从上到下):
rootaccountaccount.invoicesaccount.invoices.detail当我在 account.invoices.detail州时,我想得到一个祖先状态列表:
angular
.module('app')
.controller('InvoiceDetailCtrl', ['$scope', '$state', function ($scope, $state) {
var current = $state.current.name;
// Get ancestors from current state
// Tried $state.current.parent, $state.parent, $state.parent(current)
}]);
Run Code Online (Sandbox Code Playgroud)
Angular UI路由器允许您转换到父状态(即从视图中data-ui-sref="^"),因此应该可以实现这一点(跟随祖先的链root).
我需要这个来构建类似auto-breadcrumbs的功能.
编辑:由于接受的答案,最终得到了这个:
var current = $scope.$state.$current,
parent = current.parent,
ancestors = [current.name];
while (typeof parent != 'undefined' && parent.name.length) {
ancestors.push(parent.name);
parent = parent.parent;
}
Run Code Online (Sandbox Code Playgroud)
如果你问为什么检查parent.name.length它,因为在Angular UI中有类似"root"状态(无法获得任何文档).
JcT*_*JcT 11
看看$state.$current.includes; 它似乎返回一个具有与当前和父状态匹配的键的对象.我相信这些都是通过$state.includes()测试的州.
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |