我的问题是可以在不重新加载数据的情况下更改菜单。现在,当在仪表板链接上单击时,状态应该重新加载并重新加载页面的所有数据,包括其控制器。
我正在使用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
}
];
}]);
谢谢!