是否可以在不觸發相關路由的情況下更改Angular.js中的位置路徑。也許類似以下(不工作密碼):
$location.path("/booking/1234/", {silent: true})
是否可以在不觸發相關路由的情況下更改Angular.js中的位置路徑。也許類似以下(不工作密碼):
$location.path("/booking/1234/", {silent: true})
您可以設置reloadOnSearch
假在你的路由器,你可以修改URL的「搜索」的一部分。
這個想法是,你應該設計你的URL方案,以便如果基礎URL更改,它代表一個不同的資源,並應重新加載。如果搜索部分發生更改(?
之後的部分,則可能只是更改過濾器或排序順序或其他內容)。
是的,它可以使用一種解決方法。
var off = $scope.$on('$stateChangeStart', function (e) {
e.preventDefault();
off();
});
$location.path("/booking/1234/");
它的工作原理是這樣的 - 它是緩存的下一個狀態改變事件 - 讓他不會發生(通過調用「的preventDefault」,然後自稱註銷此事件處理程序)。
僅在Chrome上進行測試。 看到它在這個崗位:https://github.com/angular-ui/ui-router/issues/64
希望它可以幫助
這裏是解決方案,角模塊編譯 - https://github.com/garakh/ngSilent 只需要添加的模塊,然後用這樣的方式:
$ngSilentLocation.silent('/new/path/');
爲什麼?你想做什麼? –
我在「/ booking/new /」創建了預訂表單。當預訂被創建並保存時,我希望URL更改爲「/ booking/1234 /」。當路由被觸發時,它具有相同的結果,但它會再次爲資源執行GET並重新初始化控制器。 – DaveJ