私は、クライアント側に AngularJS を使用し、サーバー側に symfony 2 を使用するエディターで作業しています (symfony を使用することは、私の問題にとっては簡単だと思います)。
したがって、私の URL には 2 つの部分があります: - エディターにアクセスするための 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
可能であれば、ページをリロードしたくありません。