在angular中,我想生成MD5哈希,所以我尝试安装npm
模块。我试过'crypto-js','angular-md5',但很多都没有结果。
最后,我尝试使用'ts-md5'并且像其他所有人一样给我一个错误。
首先npm install --save ts-md5
然后:
import {Md5} from 'ts-md5/dist/md5';
@Injectable()
export class HeroService {
constructor(
private MD5: Md5
) { }
}
但我收到错误:
[Error] ERROR – Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[HeroService -> Md5]:
StaticInjectorError(Platform: core)[HeroService -> Md5]:
NullInjectorError: No provider for Md5!
get
resolveToken
tryResolveToken
[...]
md5中是否有更好的加密模块?我该如何解决这个错误?
答案 0 :(得分:7)
最后,最好的方法是直接在必须使用它的组件中导入它,并使用new Md5()
调用它。
import {Md5} from 'ts-md5/dist/md5';
const md5 = new Md5();
console.log(md5.appendStr('hello').end());
感谢所有人的快速回复。
答案 1 :(得分:3)
你不能像这样注入MD5类,因为角度依赖注入框架不知道如何提供它。您只能要求提供@NgModule
个提供程序中提供的类或已被其他导入的@NgModules
添加到提供程序的类。
您应该从构造函数中删除private MD5: Md
,看看它是否有效。另请查看angular cli global scripts。