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