这是AngularJS非常有用,
您可以指定动态路由与相同的URL模式多状态
我的代码遵循能对您有用,
Module Intialization,
var app = angular.module("koops_app", ['ui.router','ui.bootstrap']); //here you have to define all your required module for your project that you should inject...
此外,
app.config(function ($locationProvider, $httpProvider, $stateProvider, $urlRouterProvider, $wampProvider) {
// When No Routing i.e Default Routing
$urlRouterProvider.when('', '/dashboard');
// 404
$stateProvider.state("404", {
url: "/404",
templateUrl: 'template/404.html',
});
// When Only One Argument i.e. Only Module Name
$stateProvider.state("default", {
url: "/:section",
templateUrl: 'views/View-to-be-load.html', //can use $stateParams.section for dynamic
reload: true,
resolve: {
loadController: ['$q', '$stateParams', '$state',
function ($q, $stateParams, $state) {
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
]
},
controllerProvider: function ($stateParams) {
return 'controllerName';
}
});
// When Two Argument i.e. Module/Controller
$stateProvider.state("default/title", {
url: "/:section/:title",
templateUrl: 'views/View-to-be-load.html', //can use $stateParams.section for dynamic
reload: true,
resolve: {
loadController: ['$q', '$stateParams', '$state',
function ($q, $stateParams, $state) {
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
]
},
controllerProvider: function ($stateParams) {
return 'controllerName';
}
});
// When Three Arguments i.e. Module/Controller/id
$stateProvider.state("default/title/id", {
url: "/:section/:title/:id",
templateUrl: 'views/View-to-be-load.html', //can use $stateParams.section for dynamic
reload: true,
resolve: {
loadController: ['$q', '$stateParams', '$state',
function ($q, $stateParams, $state) {
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
]
},
controllerProvider: function ($stateParams) {
return 'controllerName';
}
});
// Otherwise
$urlRouterProvider.otherwise("/404");
可能这是对你有帮助... 享受...
我遇到同样的问题。我认为UI路由器基于状态,而不是URL,但是这证明了相反的 –
你找到了解决方案吗? –
我注意到,在第二次使用ui-sref实现的此配置(您的高级)中单击第二个状态时,会加载正确的模板。 (浏览器地址栏更新,因为它应该是第一次) –