实现MatPaginatorIntl时导入@angular/localize/init遇警告,添加polyfill无效求助
解决Angular中$localize直接导入警告的问题
步骤1:移除代码中的直接导入
删掉PaginationInternationalization类里的这行导入代码:
import { $localize } from '@angular/localize/init';
步骤2:正确配置localize polyfill
在项目根目录的src/polyfills.ts文件中添加以下导入语句:
import '@angular/localize/init';
如果你的angular.json里build.options.polyfills配置的不是src/polyfills.ts,请确保对应的polyfill文件中包含上述导入代码。
步骤3:直接使用$localize
完成polyfill配置后,就可以在类中直接使用$localize,无需额外导入:
@Injectable() export class PaginationInternationalization implements MatPaginatorIntl { itemsPerPageLabel = $localize`每页条数:`; // 其他分页器文本配置... }
可选:处理TypeScript类型提示
如果TypeScript提示找不到$localize,在src/typings.d.ts文件中添加全局声明:
declare const $localize: { (messageParts: TemplateStringsArray, ...expressions: any[]): string; };
关于之前配置无效的说明
angular.json的polyfills字段是指定要加载的polyfill文件路径,而非直接添加包名。你需要在指定的polyfill文件(如polyfills.ts)中导入@angular/localize/init,才能让全局环境生效。
内容的提问来源于stack exchange,提问作者Skimrande
相关产品推荐
相关产品推荐

