我在一个编辑器上工作,客户端使用 AngularJS,服务器端使用 symfony 2(我认为使用 symfony 对我的问题来说是微不足道的)。
所以我的网址有两部分: - symfony 部分访问编辑器 - 角度部分导航到编辑器
当用户保存他的更改(通过 AJAX)时,我想更新 symfony 部分以添加生成的 id。所以我用这个 js 代码片段手动构建了新路由:
var newRoute = $location.protocol() + '://' + $location.host();
// Get symfony route (using FOSJSRouting)
newRoute += Routing.generate('innova_path_editor', {workspaceId: EditorApp.workspaceId, pathId: EditorApp.pathId});
// Add angular part
newRoute += '#' + $location.path();
$location.url($location.hash(newRoute));
当我在控制台中打印生成的路由时,它是正确的,当我在浏览器中复制/粘贴它时,页面已正确加载。
但是如果我用 设置 url $location.url($location.hash(newRoute));
,Angular 会尝试将我重定向到我的 404 路由。
感谢帮助。
编辑
生成的路线是:
http://localhost/Claroline/web/app_dev.php/innova_path/workspace/2/path/editor/37#/global
编辑 2
如果可能的话,我宁愿不重新加载页面。