ui-router Go创建双路径元素
ui-router Go creates double path element
我在我的angular Meteor项目中使用UI-Router。当我在路由/搜索,并想搬迁到/search/:术语(例如/search/starwars),我在我的控制器中使用
$state.go( 'private.search.feed', { term: 'starwars' } )
然后它的URL在我的浏览器变成/search/search/starwars
而不是/search/starwars
。
我的路由设置(我有2个布局,因此抽象视图)
$stateProvider
# abstract views / layout
.state 'private',
url: ''
abstract: true
views:
'app':
templateUrl: 'client/views/layouts/privateLayout.html'
.state 'public',
url: ''
abstract: true
views:
'app':
templateUrl: 'client/views/layouts/publicLayout.html'
# end abstract views / layout
.state 'private.home',
url: '/'
views:
"container@private":
templateUrl: 'client/views/home/home.html'
.state 'private.search',
url: '/search'
views:
"container@private":
templateUrl: 'client/views/search/search.html'
controller: 'searchCtrl'
.state 'private.search.feed',
url: '/search/:term'
views:
"container@private":
templateUrl: 'client/views/search/feed/feed.html'
controller: 'searchCtrl'
当我将路由改为
时.state 'private.searchFeed',
url: '/search/:term'
views:
"container@private":
templateUrl: 'client/views/search/feed/feed.html'
controller: 'searchCtrl'
和call
$state.go( 'private.searchFeed', { term: 'starwars' } )
url是正确的
我想我在第一次设置中定义了一个子状态,但我不明白为什么它会在URL中重复search
。
任何想法吗?
您的private.search.feed
状态url应该是'/:term'
,因为父状态的url继承自它派生的状态。因为你的衍生状态必须像/:term
那样显然可以通过/search/:term
.state 'private.search.feed',
url: '/:term'
views:
"container@private":
templateUrl: 'client/views/search/feed/feed.html'
controller: 'searchCtrl'
在状态名中使用点向ui-router
表明,该状态是dotpath定义的任何状态的子状态。例如:
State 1: home (/home)
State 2: home.dashboard (/home/dashboard)
State 3: home.dashboard.settings (/home/dashboard/settings)
不能创建新的状态4名为home.dashboard.settings.save
的状态,其路由不是以状态3的URL开头,因为状态4的dotpath表明它应该继承状态3。
所以你需要确保子状态的URL不重复父状态的URL:
.state 'private.search.feed',
url: '/:term'
相关文章:
- 什么'这是返回元素的好方法's路径
- 捕捉.svg拖动路径元素
- 无法绑定 svg 路径元素上的触发器单击
- 如何通过单击命令将一个SVG路径元素变形为另一个
- 当从下拉列表中选择路径元素的值时,如何更改其颜色
- SVG 文本路径元素在使用 Javascript 生成时在 Firefox 中呈现不正确
- SVG路径元素的动画化
- 使用d3.js在svg路径元素上绘制文本
- 当鼠标移动到svg路径元素内部时,触发mouseout/mouseleave
- ui-router Go创建双路径元素
- 无法使用selenium webdriver单击svg路径元素
- 改变rapha 235; 1路径元素的正确方法是什么?
- 使用javascript从url获取第二个路径元素
- GreenSock TimelineMax的路径元素不工作在Safari和Firefox
- SVG路径元素未触发JavaFX8 Web视图中的鼠标事件
- 为什么FireFox不总是选择正确的事件目标?(路径元素特定)
- 制作一个矩形,知道边的两条垂直线(路径元素)的位置
- 将路径元素包装在锚标记中
- 是否有一种方法可以使用Javascript合并两个路径元素(svg)
- 如何应用转换到svg路径元素