角度ui-router上的重载状态

时间:2018-03-04 18:20:09

标签: angularjs angular-ui-router

我的问题是可以在不重新加载数据的情况下更改菜单。现在,当在仪表板链接上单击时,状态应该重新加载并重新加载页面的所有数据,包括其控制器。

我正在使用UI路由器作为主菜单的标签。

这是我的代码:

我的 dashboardApplication.js 文件是:

strKey

我的 app.js 文件是:

var dashboard = angular.module('dashboard', ['ui.router']);

dashboard.config(["$stateProvider", function ($stateProvider) {
$stateProvider.state('app.dashboard', {
        url: '/dashboard',
        templateUrl: 'app/modules/dashboard/views/home.html',
        controller: 'HomeController',
        controllerAs: 'vm',
        data: {
            pageTitle: 'Home'
        }
});

$stateProvider.state('app.general', {
    url: '/general',
    reloadOnSearch: false,
    templateUrl: 'app/modules/dashboard/views/general.html',
    controller: 'GeneralController',
    controllerAs: 'vm',
    data: {
        pageTitle: 'General'
    }
});

$stateProvider.state('app.message', {
    url: '/message',
    templateUrl: 'app/modules/dashboard/views/message.html',
    controller: 'MessageController',
    controllerAs: 'vm',
    data: {
        pageTitle: 'message'
    }
});

}]);

我的 appCtrl.js 文件是:

    var app = angular.module('app', ['ui.router', 'ui.bootstrap', 'dashboard']);

    app.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function ($stateProvider, $locationProvider, $urlRouterProvider) {

        $stateProvider
            .state('app', {
                url: '/app',
                abstract: true,
                reloadOnSearch: false,
                templateUrl: 'app/common/app.html',
                controller: 'appCtrl',
                controllerAs: 'vm',
                data: {
                    pageTitle: 'dashboard'
                }
            });

        $urlRouterProvider.otherwise('/general');

    }]);    

    app.config(function ($locationProvider) {
        $locationProvider.hashPrefix('!');
    }).run(function ($location) {
        $location.path('/');
    });

索引页面的部分内容为:

    app.controller("appCtrl", ['$rootScope', '$scope', '$state', '$location', 'Flash', 'appSettings', '$translate', '$translatePartialLoader', '$http',
        function ($rootScope, $scope, $state, $location, Flash, appSettings, $translate, $translatePartialLoader, $http) {

        vm.menuItems = [
                    {
                        title: "Dashboard",
                        icon: "map-o",
                        state: "dashboard",
                        visible: false
                    },
                    {
                        title: "Structure",
                        icon: "gears",
                        state: "structure",
                        visible: appSettings.SHOW_STRUCTURE
                    },
                    {
                        title: "General",
                        icon: "clone",
                        state: "general",
                        visible: appSettings.OBJ_READ
                    },
                    {
                        title: "Message",
                        icon: "envelope-o",
                        state: "message",
                        visible: appSettings.ADM_MSG
                    }
                ];

    }]);

谢谢!

0 个答案:

没有答案