我是Angular的新手,非常感谢任何建议。
基本上,我有一对多的关系 - 一个Category
有几个Product
,
我有布局页面,我在其中呈现不同的部分视图:
<div class="mainContent">
<ng-view></ng-view>
</div>
我的第一个视图显示了类别列表,当点击其中一个时,我会显示第二个视图,该视图分为两部分:类别列表,和特定类别的产品列表,示意图如下:
我的问题是,我无法弄清楚如何将另一部分用于产品列表,因为要将它们保存在单独的.html中。
我配置了路线:
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/category', {
templateUrl: 'category.html',
controller: 'categoryController as catCtrl'
})
.when('/category/:id', {
templateUrl: 'categoryDetail.html',
controller: 'categoryDetailController as catDetailCtrl'
})
.when('/product/:category_id', {
templateUrl: 'product.html',
controller: 'productController as productCtrl'
})
.otherwise({
redirectTo: "/category"
});
});
和控制器:
app.controller("categoryController", function($http)
{
var vm = this;
vm.categories = somedata;
});
app.controller("categoryDetailController", function($http, $routeParams)
{
var vm = this;
vm.category = somedata;//current category from REST api, using $routeParams.id
});
app.controller("productController", function($http, $routeParams)
{
var vm = this;
vm.products = somedata;//product list of current category using $routeParams.category_id
});
所以在我的第一个视图 - category.html
上,我有一个带有hrefs的类别列表:
<a href="#/category/{{category.id}}">
在第二个 - categoryDetail.html
上,我再次列出了类别,但是使用了另一个href:
<a href="#/product/{{category.id}}">
在最后视图 - product.html
我列出了产品。
直到现在,当我点击categoryDetail.html
内的product.html
内的类别时,mainContent
会在布局的categoryDetail.html
div中渲染,而是 - 我需要将其渲染为内部部分{{1} }。我尝试再次使用<ng-view>
,但这似乎不正确。