我在嘗試構建類似Rails方式的路線。我具有類似於這個一些路線設置:
$routeProvider.when('/posts', {
controller: 'PostsCtrl',
templateUrl: '/views/posts.html'
});
$routeProvider.when('/posts/new', {
controller: 'PostsCtrl',
templateUrl: '/views/posts.html',
doNew: true
});
$routeProvider.when('/posts/:postID', {
controller: 'PostsCtrl',
templateUrl: '/views/posts.html'
});
$routeProvider.when('/posts/:postID/edit', {
controller: 'PostsCtrl',
templateUrl: '/views/posts.html',
doEdit: true
});
PostCtrl
在底部具有以下內容:
if ($routeParams.doNew) {
console.log('action: new');
} else if ($routeParams.doEdit) {
console.log('action: edit', $routeParams.postID);
} else if ($routeParams.libraryID) {
console.log('action: show', $routeParams.postID);
} else {
console.log('action: index');
}
action: show
當路徑是/posts/new
或/posts/2
或/posts/2/edit
被打印。我可以過濾哪些控制器路由到適當的操作?
99%您應該爲每條路線創建單獨的控制器。 –
這不一定是真的。擁有不同控制器的原因是如果他們在示波器上設置的數據是根本不同的。對於像new,edit這樣的東西,顯示它幾乎是相同的,所以重用相同的控制器是有意義的。 '列表'視圖可能不同,並保證它是自己的控制器/模板。 – dtabuenc