2017-06-22 4 views
0

私はボランティアグループのウェブサイトを修正しようとしています。

私は角度1.6.4に角度1.3.16から、それを更新しようとしているが、私はというエラーメッセージが出てい:

TypeError: $http(...).success is not a function at b.$scope.init (angular-custom.js:107)

を何からそれを引き起こしているように見えるコードを私はそれが.successと角度-custom.jsファイルでのデバッグで言うと.ERROR機能することができます

$scope.init = function(){ 
     $http({ 
      method: 'post', 
      url: url, 
      data: $.param({ 'type' : 'getUsers' }), 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }). 
     success(function(data, status, headers, config) { 
      if(data.success && !angular.isUndefined(data.data)){ 
       $scope.post.users = data.data; 
      }else{ 
       $scope.messageFailure(data.message); 
      } 
     }). 
     error(function(data, status, headers, config) { 
      //$scope.messageFailure(data.message); 
     }); 
    }; 

私も、私は下plunker The 1.3.16 files at Plunker

でファイルを入れています.successと.errorの結果であるかもしれないことを立証してください。しかし、私はAngularをそれを修正する方法で多くを知らない。

私は独学のコーダーであり、どんな助けも素晴らしいので、私はこのグループを立ち上げて実行することができます。

アドバイスを事前にいただきありがとうございます。 ロッド

+2

はい、 '.success'、' .error'はどちらも古くから推奨されなくなり、1.6で完全に削除されました。いくつかの関連する読書:http://www.codelord.net/2015/05/25/dont-use-%24https-success/ – CollinD

+1

'.then(function(response){var data = response.data; .. – Phil

+0

ヒントをお寄せいただきありがとうございます。 –

答えて

1

$scope.init = function(){ 
     $http.post('yourURL', $scope.yourData). 
     then(function(results) { 
      if(results.data.success){ 
       $scope.post.users = results.data; 
      }else{ 
       $scope.messageFailure(results.data.message); 
      } 
     }). 
     catch(function(results) { 
      //$scope.messageFailure(results.data.message); 
     }); 
    }; 
(あなたは$ http.postを使用することにより、コードのいくつかの行を保存することができます注意してください)
+0

* "次へ" *?あなたは* "" *を意味しましたか? – Phil

+0

キャッチ更新の回答ありがとう – AKMorris

+0

'$ http'約束は' data、status、headers、config'ではなく 'response'オブジェクトで解決します。 – Phil

3

は、私はあなたが Don't use $http's .success()

そして

   $http({ 
       method: 'post', 
       url: url, 
       data: $.param({'user' : $scope.tempUser, 'type' : 'save_user' }), 
       headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
      }). 
      then(function(response) { 
       your code 
       excuted when post request is success 
      },function(response) { 

       your code 
       excuted when post request is failed 
      }); 

応答がサーバから返されたこの記事を読むことをお勧めします、あなたはより深く探求するデバッグすることができます。応答と丁重にエラーに対処するための角度1.6.4使用.thenと.catchについては

+0

第3の関数をカンマで区切るのではなく、エラーの代わりに.catchを使用することができます。コードをそのまま維持するためには論理的です。 – AKMorris

+0

@ AKMorris私はそれが単に個人的な好みだと言っています – Phil

+0

ありがとう、私は私の深さから少し外れています。この古い犬のための本を打つ時間を見つける必要があります;-) –

0

あなたの助けをいただき、ありがとうございました。本当にどのように動作するのかわからないので、時間をかけてAngularを学ぶ必要があります。

私は私の前に人がAngularJS Insert Update Delete in PHP and MySQL

からコードを得た。しかし、他の人が彼らのようなコードを主張して、それがネット上のいくつかの場所でポップアップするようだということが分かりました。それについての残念。

もう一度お返事いただきありがとうございますが、私はver 1.5.11で動作するようになると思いますが、後日取り消す必要があります。

ロッド

関連する問題