从我尝试使用打字稿,angular2和asp核心进行一些简单的作业,花了大约10个小时。我会解释我到达的路径以及你对我有什么想法,我会感激。TypeScript无法找到模块经常发生
首先,你应该考虑的是我使用的项目模板从波纹管链接:
然后我想添加一些代码来存储在localStorage的一些数据。
一些链接表明我必须有访问localStorage非常简单。但是,当我想从angular2的组件内访问本地存储,我得到这个错误:
localStorage is not defined
然后,我用Google搜索了很多的解决方案,发现下面的库:
但所有这些都不起作用。
然后我试着写一个服务会很容易访问localStorage的希望。然后,我创建这个文件:
/ClientApp/app/services/local-storage-service.ts
export class LocalStorageService {
write(key: string, value: any) {
if (value) {
value = JSON.stringify(value);
}
localStorage.setItem(key, value);
}
read<T>(key: string): T {
let value: string = localStorage.getItem(key);
if (value && value != "undefined" && value != "null") {
return <T>JSON.parse(value);
}
return null;
}
}
但是当我试图导入这样的:
import { LocalStorageService } from 'services/local-storage-service';
我这个错误:
cannot find module 'services/local-storage-service'
我已经尝试了一切你可以猜测。怪异的是,进口波纹管正常工作:
import { AppComponent } from './components/app/app.component';
该文件是在“/ClientApp/app/app.component.ts”但是当我将该文件复制到“/services/app.component。 ts'发生相同的错误。
我对关于如何提出有关此问题的问题没有足够的想法。但我会尝试你的任何想法。
**** UPDATE 这是目录树:
虽然在文件app.modules.ts我可以这样访问:
import { LocalStorageService } from './services/local-storage.service';
没有错误。但在文件settoken.component.ts它会导致错误。
*** REUPDATE
现在使用正确的路径我有服务的注射。但它说localStorage没有定义! 服务代码是建议的。
import { Injectable } from '@angular/core';
@Injectable()
export class LocalStorageService {
private storage: any;
constructor() {
this.storage = localStorage;
}
public retrieve(key: string): any {
var item = this.storage.getItem(key);
if (item !== null && item !== 'undefined') {
return JSON.parse(this.storage.getItem(key));
}
return;
}
public store(key: string, value: any) {
this.storage.setItem(key, JSON.stringify(value));
}
}
和错误:
Exception: Call to Node module failed with error: Error: Uncaught (in promise): ReferenceError: localStorage is not defined
ReferenceError: localStorage is not defined
TG。
导入路径中是否缺少'。/'或'../'?一般情况下,只有节点模块才能在没有导入的节点模块的情况下启动,除非您使用捆绑器(我不知道ts是否知道)做了一些神奇的事情(根据“https://www.typescriptlang.org/docs/handbook”) –
/module-resolution.html#relative-vs-non-relative-module-imports“将在任何父目录上尝试非相对路径。但我尝试了你提到的那些。没有改变! – ConductedClever
嗯,我不知道这个,今天学到了一些新东西!谢谢!对不起,它对你没用。 –