-1
私はユーザー入力をアップロードするための簡単なAngularフォームを作成しようとしています。ステップの1つは、画像を選択することである。私は、サーバーにアップロードする前に、リモートソースからイメージを取得しようとしています。コードを実行するとonload()からメソッドを呼び出そうとしましたが、メソッドはサポートされていません。
app.controller('submissionFormController', function ($http) {
this.formIsVisible = false;
...
this.sub = { //this Object contains the data entered into the form
};
this.uploadImage = function(img){
this.sub.imgfile = img;
};
this.downloadImage = function() {
url = this.sub.imgurl;
var filename = url.substring(url.lastIndexOf("/") + 1).split("?")[0];
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
this.uploadImage(xhr.response);
console.log("Image fetched!");
};
xhr.open('GET', url);
xhr.send();
};
});
、私は次のエラーを取得する:
Object doesn't support property or method 'uploadImage'
@trincotでより多くの情報を見つけることができます*それを修正する方法*。私はこれを重複としてクローズすることが現時点で正しいコースであるとは確信していません。答えを開いたままにしておくと、同じ問題を経験している人を助けるでしょう。 – UrhoKarila
多くの方法があります。これは一つです: 'xhr.onload = function(){ ...} .bind(this);'。 – trincot
ありがとう、それはトリックでした!私はまだ私の以前の主張によって立っている - しかし、この質問は重複としてマークされるべきではなく、あなたのコメントは本当に[回答があったはずです](http://meta.stackoverflow.com/a/297069/1673882) 。 – UrhoKarila