我想有面包屑,例如:Home / Cars / Audi / T8,其中Home,Cars和Audi会返回首页,但参数不同,例如单击汽车复选框等。
我将AngularJS与ui.router和ncy-angular-breadcrumb一起使用。
$stateProvider
.state('main',{
url: '/',
templateUrl: 'views/main.html',
controller: 'MainCtrl',
ncyBreadcrumb: {
label: 'HomePage'
}
})
.state('main.type',{
controller: function($scope, breadcrumbsFctry) {
$scope.defaultType = 'car';
},
ncyBreadcrumb: {
label: '{{defaultType}}',
parent: 'main'
}
})
.state('main.type.make',{
controller: function($scope, breadcrumbsFctry) {
$scope.defaultMake = 'audi';
},
ncyBreadcrumb: {
label: '{{defaultMake}}',
parent: 'main.type'
}
})
.state('car', {
url: '/ad/:name-:id',
templateUrl: 'views/ad/ad.html',
controller: 'AdCtrl',
ncyBreadcrumb: {
label: ':name',
parent: 'main.type.make'
}
})
工厂:
.factory('breadcrumbsFctry', function () {
var type = '';
var make = '';
return {
};
});
如何通过状态与不同的控制器共享参数?
最佳答案
您可以将相关数据保留在专用服务中,或使用本机JS存储服务(例如sessionStorage或localStorage)。
服务是单例的,可用于在控制器之间共享数据。
在此处阅读有关sessionStorage和localStorage的信息:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API