フォームの送信後にページのURLを変更する際に問題が発生しました。
これが私のアプリの流れです:
- ルートが設定され、URLが何らかのフォームページに認識されます。
- ページの読み込み、コントローラーの設定変数、ディレクティブの起動。
- AJAXを使用して特別なフォームの送信を実行する特別なフォームディレクティブが起動されます。
- AJAXが実行された後(AngularはAJAXを処理しません)、コールバックが発生し、ディレクティブは
$scope.onAfterSubmit
場所を設定する関数を呼び出します。
問題は、場所を設定した後は何も起こらないことです。locationparamもに設定してみまし/
た...いいえ。また、フォームを送信しないようにしました。何も機能しません。
コードが関数に到達するかどうかをテストしました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'];
誰かが私を助けてくれますか?