我有单页面应用程序和三个页面:ManageList,CreateList,EditList 我为它使用一个控制器和两个视图(manageView和CreateEditView)
when('/manageList', {
templateUrl: settings.baseurl + '/app/modules/sample/list-partial.html',
controller: 'listController',
resolve: {
listName: '$route',
function ($route) {
return {
editList: false,
manageList: true;
}
}]
}
}).
when('/createManageList', {
templateUrl: settings.baseurl + '/app/modules/sample/createEdit-partial.html',
controller: 'listController'
},
resolve: {
listName: '$route',
function ($route) {
return {
editList: false,
manageList: false;
}
}]
}
}).
when('/editList/listName/:listName', {
templateUrl: settings.baseurl + '/app/modules/sample/createEdit-partial.html',
controller: 'listController',
resolve: {
listName: '$route',
function ($route) {
return {
editList: $route.current.params.listName,
manageList: false;
}
}]
}
}).
在listController中,我管理listName和manageList params
要执行的代码if (listName.editList) {
//code for editing goes here
} else if (listName.manageList) {
//code for managing goes here
} else {
// code for creating goes here
}
问题:是否有更好的方法来分隔创建页面的逻辑。如果不这样的话,我真的不喜欢这种邪恶。
谢谢
答案 0 :(得分:1)
您应该创建3个控制器(每个视图一个)。 如果您有一些常见的行为,您可以创建服务或工厂,在功能内部声明并将其注入所有需要的控制器。
控制器必须很小,你不应该在其中声明所有的代码逻辑。