angularjs - 应用程序配置+stateProvider

标签 angularjs angular-ui-router

我正在使用 ui.router 来处理我的应用程序路由,目前我的应用程序在线上的路由很小。截至目前,他们进入 app.config,我想根据功能泄露每个路由配置,例如此功能用于“促销”SPA,我该如何着手执行此操作,这样我就不会让我的初始 app.config js 文件变得困惑?

$stateProvider
            .state('promotion', {
                controller: 'PromotionsController',
                url: '',
                views: {
                    "list": {
                        controller: 'PromotionsController',
                        templateUrl: templatesRoot + 'Promotion/promotion-list.html'
                    },
                    "editor": { template: "Welcome" }
                }
            })
            .state('promotion-edit',
                {
                    url: '/edit/{id}',
                    views: {
                        "list": {
                            controller: 'PromotionsController', 
                            templateUrl: templatesRoot + 'Promotion/promotion-list.html'
                        },
                        "editor": {
                            controller: ['$scope', '$stateParams', 'promotionService', function ($scope, $stateParams, promotionService) {
                                $scope.promotion = promotionService.getPromotion($stateParams.id)
                                $scope.savePromotion = function () {
                                    // save the promotion
                                    promotionService.savePromotion($scope.promotion, function (data, responseHeaders) {
                                        if (!data.Success) {
                                            toaster.pop({
                                                type: 'error',
                                                title: 'Error',
                                                body: data.Message,
                                                showCloseButton: true
                                            });
                                        } else {
                                            toaster.pop({
                                                type: 'success',
                                                title: "Success",
                                                body: "Successfully saved the promotion",
                                                showCloseButton: true
                                            });
                                        }
                                    });
                                };
                            }],
                            templateUrl: templatesRoot + 'Promotion/promotion-edit.html'
                        }
                    }
                }
            )
            .state('promotion-create',
                {
                    url: '/create',
                    views: {
                        "list": {
                            controller: 'PromotionsController',
                            templateUrl: templatesRoot + 'Promotion/promotion-list.html'
                        },
                        "editor": {
                            controller: 'PromotionsController',
                            templateUrl: templatesRoot + 'Promotion/promotion-create.html'
                        }
                    }
                }
            )

最佳答案

将您的路线分成文件。例如:

促销.js

angular.module('AppName').config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
    $stateProvider.state('promotion', {
            controller: 'PromotionsController',
            url: '',
            views: {
                "list": {
                    controller: 'PromotionsController',
                    templateUrl: templatesRoot + 'Promotion/promotion-list.html'
                },
                "editor": { template: "Welcome" }
            }
        })
}]);

然后在您的index.html中引用此文件:

<script src="pathToRoutes/promotion.js"></script>

之后您就可以开始了。

关于angularjs - 应用程序配置+stateProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32782737/

相关文章:

javascript - 用户登录时动态显示侧边栏 View /模板?

angularjs - 在 $stateChangeStart 中使用 $state.go 会导致无限循环

angularjs - 集成测试 AngularJS + Karma + Jasmine

javascript - Angularjs 指令 : child nodes

javascript - AngularJS 缓存 $http.post 响应

javascript - 如果 ui-router 解析的一部分返回 true 或 promise ,我该如何编写代码?

javascript - Angular2-cli 当更改路由资源文件夹 css 或 js 时未加载

javascript - UI-Router StateChange 但 View UI 不刷新

angularjs - 如何使用两个指令的同一 Controller 将模型变量从一个指令传递到另一个指令?

angularjs - 修复了当我们在单页应用程序中导航到不同页面时显示的标题