0
我有一個旨在支持特定型號的所有CRUD操作的控制器:顯示的記錄列表,記錄的展示細節,編輯,創建,更新和刪除。
不同視圖使用相同的控制器渲染 - 但每個視圖,需要不同的初始化:爲列表,我應該加載的記錄頁,對於詳細信息視圖 - 我會通過ID加載。
獲取控制器初始化狀態的最佳做法是什麼?
下面是我使用的是幾條路線的例子:
function config($routeProvider, $locationProvider) {
$routeProvider
// ...
.when('/activity/list', {
controller: 'ActivityController',
templateUrl: 'views/activityList.html',
controllerAs: 'vm'
})
.when('/activity/create', {
controller: 'ActivityController',
templateUrl: 'views/createNewActivity.html',
controllerAs: 'vm'
})
.when('/activity/:id', {
controller: 'ActivityController',
templateUrl: 'views/activity.html',
controllerAs: 'vm'
})
.otherwise({ redirectTo: '/login' });
}
補丁 - 我檢查路徑明確區分開來。根據我的猜測,這不可能是最佳做法。
if ($location.$$path == '/activity/list') {
initList();
}
可以在路由配置對象中設置其他屬性,並通過'$ route.current'檢查它們或使用'resolve'在控制器中注入變量 – charlietfl
其他屬性? $ routeProvider.when的文檔似乎沒有該屬性。我錯過了什麼? https://docs.angularjs.org/api/ngRoute/provider/$routeProvider – orberkov
嗯...我知道你曾經可以把屬性放在那些對象上......看起來你已經不能了,但仍然可以使用'resolve'。我沒有長時間使用'ngroute',因爲缺乏對這個簡單問題的活動,而且你的(charliefl)答案 - 你是否建議AngularJS導航的行業標準是ui-route,並且使用ui-router? – charlietfl