首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:无法将值"$event“赋值给模板变量Angular 10

错误:无法将值"$event“赋值给模板变量Angular 10
EN

Stack Overflow用户
提问于 2020-11-08 19:26:47
回答 1查看 4K关注 0票数 3

当我将值设置为p-dropdown时,出现了奇怪的错误

代码语言:javascript
复制
ERROR: Uncaught (in promise): Error: Cannot assign value "$event" to template variable "bed". Template variables are read-only.
Error: Cannot assign value "$event" to template variable "bed". Template variables are read-only.
    at _AstToIrVisitor.visitPropertyWrite (compiler.js:8348)
    at PropertyWrite.visit (compiler.js:7236)
    at convertActionBinding (compiler.js:7935)
    at prepareEventListenerParameters (compiler.js:16723)
    at Object.params (compiler.js:17822)
    at compiler.js:17599
    at Array.map (<anonymous>)
    at compiler.js:17599
    at compiler.js:16878
    at Array.map (<anonymous>)
    at resolvePromise (zone.js:1215)
    at resolvePromise (zone.js:1165)
    at zone.js:1277
    at ZoneDelegate.invokeTask (zone.js:407)
    at Object.onInvokeTask (core.js:27474)
    at ZoneDelegate.invokeTask (zone.js:406)
    at Zone.runTask (zone.js:179)
    at drainMicroTaskQueue (zone.js:583)

如果我需要使用[(ngModel)],我该怎么做?

HTML代码:

代码语言:javascript
复制
<div class="col-12">
     <div *ngFor="let bed of local_bed">
        <p-dropdown [options]="bedType" formControlName="bedTypeID" [(ngModel)]="bed"></p-dropdown>
     </div>
</div>

TS代码:

代码语言:javascript
复制
local_bed: any;
    
selectBedById(id: string) {
     this.roomService.queryRoomBedById(id).subscribe(res => {
         this.local_bed = res;
     });
 }

console.log为:

代码语言:javascript
复制
[ "3", "3", "1" ] 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-08 20:57:38

原因是您创建了一个“本地”变量bed。您不能更改它,但在传递给ngModel时,您正在尝试更改它。您可以像这样传递数组项:

代码语言:javascript
复制
<div *ngFor="let bed of local_bed; let i = index">
        <p-dropdown [options]="bedType" formControlName="bedTypeID" [(ngModel)]="local_bed[i]"></p-dropdown>
</div>

ngFor表达式略微升级(包括let i = index),ngModel参数从bed更改为local_bed[i]

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64737525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档