我正在使用AngularJS和UI-Router制作一个小电子商务产品库。它应该显示表示产品类别的图像网格。当用户选择一个类别时,网格应显示该类别的子类别,等等,直到用户达到只有产品的级别。点击产品应显示其详细信息。我在UI-Router中使用2个状态,一个用于画廊,另一个用于细节。AngularJS和UI-路由器多级面包屑元素
app.config(function($stateProvider){
$stateProvider
// Gallery State
.state('gallery', {
url: '/products/:category',
templateUrl: 'views/gallery.html',
controller: 'galleryCtrl'
})
// Details State
.state('details', {
url: '/details/:id',
templateUrl: 'views/details.html',
controller: 'detailsCtrl'
});
});
在“库”状态时,控制器使用:类参数从数据库中该类别的所有子类别或产品在网格中显示得到。 'details'状态的控制器使用模拟策略通过:id参数获取产品信息。 现在我想制作一个显示用户通过图库的“路径”的面包屑元素。例如,如果用户选择“计算机”类别,然后在“笔记本电脑”类别,然后在“富笔记本”,面包屑应显示:
Computers > Notebooks > Foo Notebook
我发现的解决方案,从UI获得国家层次-Router创建面包屑。问题是,只有我创建的两个州,面包屑不会显示所有类别,只是最后一个选定的类别。我不想为每个类别创建一个状态,因为类别的数量和层次结构可能会发生变化。有什么办法可以做到这一点?
这是一个单页面应用程序吗?或者每个状态更改之间是否有页面重新加载? – Daniel 2014-09-19 14:33:34
单页,实际上这些状态是另一个的孩子。我编辑了代码以避免问题变得太大。 – faeru 2014-09-19 14:42:04