AngularJS:separete从管理页面创建/编辑页面

时间:2014-08-26 09:09:04

标签: javascript angularjs architecture

我有单页面应用程序和三个页面: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 
}

问题:是否有更好的方法来分隔创建页面的逻辑。如果不这样的话,我真的不喜欢这种邪恶。

谢谢

1 个答案:

答案 0 :(得分:1)

您应该创建3个控制器(每个视图一个)。 如果您有一些常见的行为,您可以创建服务或工厂,在功能内部声明并将其注入所有需要的控制器。

控制器必须很小,你不应该在其中声明所有的代码逻辑。