私はこのコードを持っています:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
ローカル環境では問題なく動作しますが、サーバーでは次のエラーが返されます。
TypeError: $http.get(...).success は関数ではありません
何かアイデアはありますか?ありがとう
ベストアンサー1
構文.success
は Angular v1.4.3 までは正しかったです。
Angular v.1.6 までのバージョンでは、then
メソッドを使用する必要があります。このメソッドは、レスポンス オブジェクトとともに呼び出されるコールバックとthen()
、の 2 つの引数を取ります。success
error
メソッドを使用してthen()
、callback
返された に関数をアタッチしますpromise
。
このようなもの:
app.controller('MainCtrl', function ($scope, $http){
$http({
method: 'GET',
url: 'api/url-api'
}).then(function (response){
},function (error){
});
}
参照ここ。
Shortcut
方法も利用可能です。
$http.get('api/url-api').then(successCallback, errorCallback);
function successCallback(response){
//success code
}
function errorCallback(error){
//error code
}
応答から取得するデータは、JSON
形式になっていることが予想されます。翻訳輸送するのに最適な方法ですデータ、そして簡単に使用できますアンギュラー
2 つの主な違いは、.then()
call はpromise
( から返された値で解決されるcallback
)を返すのに対し、 は.success()
より伝統的な登録方法でcallbacks
あり を返さないことですpromise
。