AngularJS:实现多页面,多控制器模式

时间:2014-04-13 11:48:57

标签: javascript angularjs modal-dialog

我正在寻找一种实现模态的方法,它包含一个跨越多个页面的对话框。每个页面都应该有自己的控制器,并且应该对数据进行自己的服务器调用。一个示例是允许您选择某一天的模式:在第一页上,您将选择一年,在第二天和第三天,选择缩小每个页面的选择范围。但是每个页面的网址都应保持不变。

我的第一个想法是构建类似UI-Router的东西,它允许你定义模态可以存在的状态,每个状态都有自己的控制器并解析函数:

ModalService.register({
    name: "daySelector",
    states: {
        years: {
            templateUrl: "day-selector-years.tpl.html",
            controller: "DaySelectorYearsController",
            params: [],
            resolve: {
                years: function () {
                    return DataService.getYears();
                }
            }
        },
        months: {
            templateUrl: "day-selector-months.tpl.html",
            controller: "DaySelectorMonthsController",
            params: ["year"],
            resolve: {
                months: function (year) {
                    return DataService.getMonthOfYear(year);
                }
            }
        },
        days: {
            templateUrl: "day-selector-days.tpl.html",
            controller: "DaySelectorDaysController",
            params: ["year", "month"],
            resolve: {
                days: function (year, month) {
                    return DataService.getDaysOfMonth(year, month);
                }
            }
        }
    }
});

据我所知,这需要我自己完成所有的编译和依赖注入。我还必须以某种方式将模态链接到某个模块和某个范围,以确保可以解决所有依赖关系。现在,我仍然非常不熟悉AngularJS的所有这些相当低级别的操作。所以在我深入讨论所有这些之前,我想检查一下这是否真的可行,或者是否有更好的方法来解决这个问题。

0 个答案:

没有答案