【Angular】Angular 项目遇到的问题

478 阅读1分钟

1. 关于 ng-reflect 属性(0511)

场景:通过 jQuery 拿到页面的元素,获取所有元素的 valu 值,但是使用了 primeNg 框架的 dropdown 通过 $('element').value 拿不到 value 值。但是因为 ngmodule 双向绑定了该值,所以通过 ng-reflect-model 拿到了该值。

结果:但是在联调环境上,没有这个值,value 获取不到,导致报错。

原因: 因为在开发的时候,DOM 上有大量的数据被挂载在 ng-reflect 属性上,这些是为了在开发环境 debug 提供的。但是在测试环境和生产环境,是没有的。控制是否需要 ng-flect 属性的办法就是,在 /src/environments/environment.ts 中设置 production: true 即可

解决办法:绑定到了 data-id 上

 <p-dropdown [options]="indexList" [filter]="true" [resetFilterOnHide]="true" (onChange)="onIndexSelected($event, item);" placeholder="请选择" required name = "quotaName" [(ngModel)]="item.quotaId" data-id="label-{{item.quotaId}}">
</p-dropdown>

data-id 通过 $('element').id 就可以拿到

form表单 reset

TBD