我工作的应用程序有一个基本href通过时基本href是目前更新location.path更改UI路由器状态
<base href="/xyz/">
和国家配置类似于
.state('state1', {
url: '/abc/:def/:ghi',
views: 'view1',
})
.state('state2', {
url:'/abc/:def/:ghi/jk/:123/:456',
views: 'view2',
})
,并获得我做
var browserUrl = $state.href($state.current.name, $state.params, { absolute: false });
当前的URL这回我
/xyz/abc/:def/:ghi
我没有问题,当我做$ state.go转到state2,但如果我使用$ location.path来更新URL,那么UI路由器无法匹配状态,因为基础href存在于newUrl。要更新我做
var 123Id = 'item1'
var 456Id = 'item2'
var newUrl = [browserUrl, 'jk', 123Id, 456Id].join('/');
$location.path(newUrl)
这是行不通的,因为browesrUrl包含基本href状态,任何想法如何通过更新位置,使这方面的工作?
为什么'包含完整browserUrl browserUrl'?你可以把'browserUrl'的输出添加到你的'join()'函数中吗? – lin
@lin它拥有基础href,因为我使用$ state.href动态生成url – Venkat