フォームの送信後にページのURLを変更すると問題が発生します。
これが私のアプリの流れです:
- ルートが設定され、URLが何らかのフォームページに認識されます。
- ページの読み込み、コントローラーセットの変数、ディレクティブが発生します。
- AJAXを使用して特別なフォーム送信を実行する特別なフォームディレクティブが起動されます。
- AJAXが実行された後(AngularはAJAXを処理しません)、コールバックが発生し、ディレクティブが
$scope.onAfterSubmit
場所を設定する関数を呼び出します。
問題は、場所を設定した後に何も起こらないことです。ロケーションパラメータ/
も同様に設定しようとしました...いいえ。また、フォームを送信しないようにしました。何も機能しません。
コードがonAfterSubmit
関数に到達するかどうかを確認するためにテストしました(実行されます)。
私の唯一の考えは、(ディレクティブから呼び出されたために)関数のスコープが何らかの方法でonAfterSubmit
変更されたということですが、スコープが変更された場合、どのように呼び出すことができますか?
これが私のコードです
var Ctrl = function($scope, $location, $http) {
$http.get('/resources/' + $params.id + '/edit.json').success(function(data) {
$scope.resource = data;
});
$scope.onAfterSubmit = function() {
$location.path('/').replace();
};
}
Ctrl.$inject = ['$scope','$location','$http'];
誰かが私を助けてくれますか?