angular - 将 translocoDecimalPipe 注入其他管道
问题描述
我在尝试将 TranslocoDecimalPipe 注入我的自定义管道时偶然发现了一个问题。我收到的错误要么与其他内容有关,要么我完全不理解。
这是我的服务:
@Pipe({
name: 'valueCurrency',
})
export class ValueCurrencyPipe implements PipeTransform {
constructor(private readonly decimalPipe: TranslocoDecimalPipe) {}
transform(value: number | Unset, currency?: string | Unset) {
if (isNotSet(value)) {
return '-';
} else {
const transformed = this.decimalPipe.transform(value, {
minimumFractionDigits: 2,
maximumFractionDigits: 3,
});
return `${defaultTo('', currency)} ${transformed}`.trim();
}
}
}
这是我得到的错误:
main.ts:19 TypeError: Cannot read properties of null (reading 'type')
at createViewRef (core.js:22954)
at injectChangeDetectorRef (core.js:22934)
at Module.ɵɵinjectPipeChangeDetectorRef (core.js:26655)
at Object.TranslocoDecimalPipe_Factory [as factory] (ngneat-transloco-locale.js:1272)
at R3Injector.hydrate (core.js:11452)
at R3Injector.get (core.js:11272)
at injectInjectorOnly (core.js:4776)
at ɵɵinject (core.js:4780)
at Module.ɵɵdirectiveInject (core.js:14704)
at Object.ValueCurrencyPipe_Factory [as factory] (value-currency.pipe.ts:14)
该错误似乎以 ChangeDetectorRef 为中心。我的管道主要用于整个应用程序的模板中,但是有一个地方(ngrx 效果)注入了它。那个地方可能是根本原因,因为我不知道 CDR 是否在 StoreModules 中可用。(保持该效果的模块具有LocaleModule,并导入了我的自定义管道)我还尝试在那里导入CommonModule(应该提供CDR的模块),但它没有帮助......
我该如何进行?
解决方案
推荐阅读
- php - 从函数访问值
- php - 如何重构自定义 http 客户端类?
- heroku - 使用 Socket.IO 部署 GraphQL API
- javascript - 当我们在 JavaScript 中将原语视为对象时会发生什么?
- python - 如何创建在线文档以通过 python 记录用户的值?
- python - 在 discord.py 中获取服务器成员的所有名称
- c - GSL 中是否有内置的广义特征值函数?
- amazon-web-services - 如何安排 AWS lambda cron 在月底前 7 天运行?
- awk - 连接变量和字符串(awk,macos 版本)
- java - 使用 Java 中的 Flickr API 上传图片