我有一个应用程序是渲染一个VR场景与Angular 组件和一些其他文件。现在有些文件是硬编码,我可以启动总是只有一个场景。所以我给了一个机会,客户端加载这些文件到后端,然后用户将有一个选择来选择一个场景开始。当他选择一个场景,并点击开始,我正在从后端阅读这些文件。2现在我有所有的文件内容作为一个纯文本,我只需要写文件的场景执行与此数据。3我尝试了“fs”库来写文件或FileWriter,但是使用这两种方法都会产生错误。使用“fs”会产生很多安装和错误。FileWriter我根本没有可用的类。
startTask(i: number) {
let taskFiles: TaskFiles;
this.task_files_subscription = this._client.getTaskFiles(this.tasks[i].id).subscribe(data => {
taskFiles = data as TaskFiles;
TaskFiles.decode(taskFiles);
const htmlFilePath = '<path>/scene.component.html';
const tsFilePath = '<path>/scene.component.ts';
// ... other files
console.log("success");
})
}
以下是TaskFiles类:
export class TaskFiles {
htmlFile: string = "";
tsFile: string = "";
specTsFile: string = "";
pnmlFile: string = "";
languageFile: string = "";
public constructor(init?: Partial<TaskFiles>) {
Object.assign(this, init);
}
// decode method to decode base64 to a plaintext
}
有没有一个好的方法来解决我写文件的问题?如果有,如何写一些数据的文件?或者它可以是一个更好的方法来做到这一点?
1条答案
按热度按时间5kgi1eie1#
你的方法有一个主要缺陷:
typescript 文件被转化为javascript,Angular在运行时不会对 typescript 文件做任何事情。
因此,不要期望能够从服务器发送组件。
你只能使用从服务器下载的动态模板,但是这需要在构建中嵌入JIT编译器,出于性能的考虑,这并不推荐。