我正在尝试使用angular-breadcrumb和ui-router创建动态面包屑。特别是,我想将我的状态的parent breadcrumb链接绑定到模型变量,由控制器异步设置。覆盖父状态的angular-breadcrumb gives the following example的API参考:
$stateProvider.state('product.detail', {
url: '/{productId}',
views: [...],
ncyBreadcrumb: {
parent: 'category.list({cat: "product"})'
}
})
然后我尝试更换硬编码的产品"在这个示例中,在子控制器中异步设置某些内容(在某些服务承诺解析之后),沿着以下行:
$stateProvider.state('product.detail', {
url: '/product/:id',
controller: 'ProductController',
controllerAs: 'vm',
ncyBreadcrumb: {
label: 'Product',
parent: 'category.list({cat: vm.category})'
}
})
...
ProductController.$inject = ['DataLookupService'];
function ProductController(DataLookupService) {
var vm = this;
DataLookupService.get(...).$promise.then(function(data) {
vm.category = data.some_category_id;
});
...
}
但是,这只会根据vm.category当前的值(通常是未定义的)设置一次ncyBreadcrumb.parent,并且不会创建绑定来更新ncyBreadcrumb.parent,因为vm.category异步更改。
人们可以想出一种方法来实现这一点,即异步设置父级吗?