-1
我正在嘗試爲上傳用戶輸入做一個簡單的Angular表單。其中一個步驟涉及選擇圖像。我試圖從遠程源獲取圖像,然後將其上傳到服務器。試圖從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