我工作的應用程序有一個基本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