****更新****
我认为这不起作用的原因是因为每次将新文件上传到public / temp文件夹时,BroccoliTypeScriptCompiler(我在重建应用程序时直到RC5才使用)都会重新编译应用程序。我试图通过使用位于我的src文件夹中的tsconfig.json文件上的exclude标记以及尝试在我的e2e文件夹中的一个来阻止此行为,但似乎没有人对此操作产生任何影响。
有人可以告诉我如何在将新文件添加到/ public / temp时停止BroccoliTypeScriptCompiler重新编译我的应用程序吗?
****原创****
我刚刚将我的应用程序从RC4更新到RC5。我仍然有我的RC4应用程序进行测试。此应用程序最初是在Angular2的测试阶段创建的。我刚刚完成的另一件事是在新的文件夹结构中重建应用程序,这似乎是通过角度CLI实现的。
执行此操作后,我在本地上传文件的xhr上传过程不再有效。它的字面意思与RC4版本中仍然有效的完全相同。我无法在网上找到任何可以让我理解为什么会这样。
当我在RC5中运行它时,profile-input.component中的结果为null。 upload-file.service中的xhr.response具有预期的完整对象。
任何帮助都会很棒。
个人资料-input.component.ts
upload() {
console.log('this.createdProfile before upload');
console.log(this.createdProfile);
this.uploadFileService.makeFileRequest("http://localhost:3000/upload", this.createdProfile.profileId, this.filesToUpload)
.then(
(result) => {
console.log('result in prof input action removed is');
console.log(result);
// this.imageUploaded = true;
// this.uploadFile = result.obj.path;
// this.uploadObject = result.obj;
},
(error) => {
console.log('We are in error');
console.error(error);
});
}
上传-file.service.ts
makeFileRequest(url: string, profileId, files: Array<File>) {
const token = localStorage.getItem('token') ? '?token=' + localStorage.getItem('token') : '';
console.log('profileId in upload service is: ');
console.log(profileId);
const profileParam = 'profileId=' + profileId;
return new Promise((resolve, reject) => {
var formData: any = new FormData();
var xhr = new XMLHttpRequest();
for(var i = 0; i < files.length; i++) {
formData.append("uploads[]", files[i], files[i].name);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
console.log('xhr.status is 200');
console.log('xhr.response is');
console.log(xhr.response);
resolve(JSON.parse(xhr.response));
} else {
console.log('xhr.status is NOT 200');
reject(xhr.response);
}
}
};
xhr.open("POST", url+token+'&'+profileParam, true);
xhr.send(formData);
});
}