2017-06-02 17 views
0

POSTメソッドを使用してビューを再ロードせずにデータをAPIに送信したいと考えています。成功かエラーかにかかわらず、私のビューは実行後にリロードされます。私は、APIにデータを送信するために、この機能を使用していAngularJSのhttpリクエストの後にビューが再ロードされる

$scope.addObject = function (data) { 
    Object.add(data).then(function (response) { 
     $scope.isSubmitting = false; 
     if (response !== null) 
      toaster.pop(response.status, response.status, response.message); 
     return false; 
    }); 
}; 

それは、以下のサービスを使用しています:

.factory('Object', function ($http, $rootScope) { 
    var object = {}, 
     url = $rootScope.apiUrl; 

    object.add = function (data) { 
     return $http({ 
      url: url + '/object/add', 
      method: 'POST', 
      params: data 
     }) 
     .then(function(response) { 
      return response.data; 
     }); 
    }; 

    return object; 
}); 

ここでは、フォームのHTMLです。

<form class="object-form" ng-submit="addObject(objectData)"> 
    <select name="type" ng-model="objectData.type"> 
     […] 
    </select> 
    <button type="submit">OK</button> 
</form> 

フォームは正常に動作し、ページを送信していません。ちょうどビューがリロードされます。

ビューの再読み込みを避けるにはどうすればよいですか?


UPDATE

要求は(ステータス= 200)に成功した場合、それはビューを再ロードしません。

+1

フォームのHTMLを入力してください。 – Baruch

+0

はフォームのHTMLで更新されましたが、他の要素から関数を呼び出すことさえも、私のフォームはまだリロードされます。 – fksr86

+0

'ng-submit'を使わずにボタンで' ng-click'を使ってみましたか?申し訳ありませんが、他の要素から関数を呼び出すことがその意味であるかどうかはわかりません。 **編集**フォームが200でリロードされない場合、多分それはキャッチされていないエラーと関係があるでしょうか? '.catch'を追加してみてください。 – Baruch

答えて

0

ので、問題は別の場所から来た:

応答がエラーだった場合、ビューをリロードしてインターセプタがありました。

私はこれを答えとして入れています。なぜなら、インターセプタが私に問題を引き起こすのは2度目なので、誰かがここに来たら、傍受者を調べるべきだということを知りましょう。

関連する問題