![](/img/trans.png)
[英]AngularJS ui-router navigating states with $state.params and queries
[英]AngularJS simple navigating to parameterized state via URL ui-router
我試圖通過導航到其關聯的URL來進入ui-router
父狀態或子狀態。 我知道, ui-sref
是通過進入狀態的證明,簡單的方法, a
鏈接,但只是打字狀態的網址到瀏覽器似乎總是重定向我到我的$urlRouterProvider.otherwise()
語句。
例如,我希望能夠通過瀏覽器中的example.com/#/page
進入page
狀態。 相反,我被重定向到otherwise
。
JS
angular.module('app', [ 'ui.router', 'subapp']);
angular.module('app').config(function($urlRouterProvider, $locationProvider) {
}).controller('appCtrl', function(){});
angular.module('subapp', ['ui.router']);
angular.module('subapp').config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('#/page/nothing', '/');
$stateProvider
.state('page', {
url: '#/page',
templateUrl: 'page.tpl.html'
})
.state('page.edit', {
url: '/:myparameter',
templateUrl: 'page-edit.tpl.html'
});
$urlRouterProvider.otherwise('/hello');
});
的index.html
<body ng-controller="appCtrl">
This is the index.html file<br>
<a href="#/page">Go to page state</a><br>
<a href="#/page/myparameter">Go to page child state with a parameter</a>
<ui-view></ui-view>
PLNKR: http ://plnkr.co/edit/HQziTB2CyJrCvbgzzuJm?p = preview
OTE我有一個subapp
被注入主服務的應用程序,但我不認為這會有所作為,因為page
國家仍然應該是“頂級”狀態注入index.html的<ui-view>
如何做到這一點,以便可以直接導航到URL(甚至是帶有參數的URL)? 該文檔說這是可能的,但我似乎無法使其正常工作。
您的參數網址錯誤,無法映射具有固定名稱的網址,而其他具有參數原因的網址會導致瘋狂的重寫,以為這是一個變量
$stateProvider
.state('page', {
url: '#/page',
templateUrl: 'page.tpl.html'
}
).state('page.edit', {
url: '/:myparameter',
templateUrl: 'page-edit.tpl.html'
});
通過以下方式使用URL:
$stateProvider
.state('page', {
url: '/page',
templateUrl: 'page.tpl.html'
}
).state('page.edit', {
url: '/page/:myparameter',
templateUrl: 'page-edit.tpl.html'
});
我會說,你快到了。 有一個更新的塞子 。 但是,盡管您的鏈接可以(應該)使用#
(我們未使用html5Mode
)
<a href="#/page">
<a href="#/page/myparameter">
<a href="#/page/11">
狀態定義不應包含該符號:
.state('page', {
// instead of this
// url: '#/page',
// we need this
url: '/page',
...
.state('page.edit', {
// instead of this
// url: '#/:page',
// we need this
url: '/:page',
然后這些也將起作用:
<a ui-sref="page">
<a ui-sref="page.edit({page:123})">
<a ui-sref="page.edit({page:444})">
在這里檢查
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.