Ich bin neu in Angular und würde mich über jeden Rat freuen. Grundsätzlich habe ich eine Eins-zu-viele Beziehungs- ein Category
hat mehrere Product
, ich die Layoutseite, wo ich verschiedene Teilansichten machen:Teilansichten in AngularJS
<div class="mainContent">
<ng-view></ng-view>
</div>
Mein erste Ansicht zeigt die Liste der Kategorien, wenn einer von ihnen angeklickt wird, zeige ich die zweite Ansicht, die zwei Teile getrennt: Liste der Kategorien, und die Liste der Produkte von bestimmten Kategorie, schematisch sieht es so aus:
Mein Problem ist, dass ich nicht herausfinden kann, wie man einen anderen Teil für die Liste der Produkte verwendet, weil sie in separaten .html behalten möchten.
Ich konfigurierte Routen:
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"
});
});
und Controller:
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
});
So auf meinem ersten Blick - category.html
habe ich die Liste der Kategorien mit hrefs:
<a href="#/category/{{category.id}}">
Auf der zweite-categoryDetail.html
, Liste I Kategorien wieder, aber mit einem anderen hrefs:
<a href="#/product/{{category.id}}">
Und auf der letzten Ansicht - product.html
ich die Produkte auflisten.
Bis jetzt, wo ich in categoryDetail.html
auf Kategorie meines product.html
macht in mainContent
div des Layouts, sondern - ich brauche es als inneren Teil categoryDetail.html
innen zu machen. Ich habe versucht, wieder <ng-view>
zu verwenden, aber das scheint nicht korrekt zu sein.
Gibt es einen bestimmten Grund, warum Sie Staaten nicht nutzen? d. h. Winkel-Ui-Router? Auch - +1 für das Bild – Katana24
Haben Sie erwogen, ngInclude statt ngView zu verwenden? –
@ Katana24, ich habe gelesen, dass Ui-Router für größere Anwendungen verwendet wird, ist meine ziemlich klein, aber sollte ich Ui-Router verwenden, wenn ich Paging für Produktliste benötigen? –