uploadFiles関数の実行後にイメージパスを取得したいとします。このようにして、self.ProjectImagePathに値を割り当てます。しかし、それは機能していない、私はそれが関数呼び出しの直後に実行すると思います。誰でも助けることができますか?変数が別の関数によって変更された後の変数の使用 - 定義されていない取得
self.submitProject = function(file) {
console.log("Submit Project \n");
uploadFiles.apply(this, arguments);
console.log(self.ProjectImagePath); ///ERROR HERE!!!! (UNDEFINED)
var data = JSON.stringify({
name: self.ProjectName,
room: self.room,
managers: self.Managers,
members: self.ProjectMembers,
image: self.ProjectImagePath
});
//console.log(data);
$http.post('/rooms/' + self.room + '/project', data).success(function(data) {
//$window.location.href = "/";
});
}
function uploadFiles(file) {
file.upload = Upload.upload({
url: 'projectImages/upload',
data: {
file: file
}
});
file.upload.then(function(response) {
$timeout(function() {
file.result = response.data;
self.ProjectImagePath = file.result;
});
}, function(response) {
if (response.status > 0)
self.errorMsg = response.status + ': ' + response.data;
});
}
実行後、イメージはサーバーにアップロードされますが、そのパスは取得できません。 AngularJSを使用しています
あなたの 'はconsole.log()アップロードからの応答が完了する前に'起こります。詳細な説明[ここ](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call)。 – Jasen
あなたはresponse.dataを印刷しましたか? – Ramesh
UploadFiles()内に印刷すると、ファイルパスが表示されます。 –