【发布时间】:2015-02-06 13:31:55
【问题描述】:
这是我的主应用 (app.js)
(function(ng, module) {
module.config(['$stateProvider', '$urlRouterProvider', function( $stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("app");
$stateProvider.state('login', {
url: 'login',
templateUrl: '/assets/templates/pages/login.html'
}).state('root', {
url: '',
templateUrl: '/assets/templates/pages/index.html'
});
}]);
}) (angular, angular.module('myapp', ['ui.router', 'myapp.submodule']));
这是子模块(submodule.js)
(function(ng, module) {
module.config(['$stateProvider', function($stateProvider){
$stateProvider.state('root.substate', {
url: 'todo/{type}',
templateUrl: '/assets/app/todo/todo.html',
controller: function($stateParams, $scope) {
// Do stuff.
}
});
}]);
}) (angular, angular.module('myapp.submodule', ['ui.router']));
预期的行为是
- 找不到匹配路由时重定向到“app”url
- 在根 url 上激活“根”状态
- 在 /todo url 上激活“root.substate”状态
这工作正常。
但是,如果我确实刷新了页面,则状态不会被激活,我会被发送回“app”。为什么?
【问题讨论】:
-
也许不是真正的问题,但我肯定以
/-url: '/todo/{type}'开始任何网址 -
我还在测试,但似乎开头的斜线可能是问题所在。
-
你知道为什么吗?简单地说,必须有某种方法可以清楚地定义状态 url 从哪里开始。你的 url 映射说:
domain/applogin实际上......我建议:domain/app/login。所以没有斜线......引擎的大问题,如果你知道我的意思 -
嗯,我还是很困惑。登录和根状态的前导斜线修复它们。嵌套的 root.substate 状态工作正常没有前导斜线,并且前导斜杠有问题。 Buggy = 刷新导致未解决的路线。编辑:Buggy = url 它呈现为 foo.bar/#//todo (双斜杠)。我想我错过了一些关于 url 生成的东西
-
将尝试向您展示如何回答......给我秒
标签: javascript angularjs angular-ui-router