Angular 報錯 Cannot assign to a reference or variable!

情況一:
控件的屬性 與 ts 文件裏面定義的變量重名了

比如 @Input() key: string;

<div-model key="abc"></div-model>

情況二:
這個問題是應爲HTML文件中ngModel綁定了一個變量,卻沒有給變量賦值導致的。

<input #assembleInquestion id="assembleInputquestion" (click)="question(assembleInquestion,assembleQuestion)"
                name="comb_question" class="wangEditor-container" [(ngModel)]="assembleQuestionName">

錯誤

assembleQuestionName: string;   //  聲明瞭變量,沒有賦值

正確

 assembleQuestionName = '';   //   改爲這種聲明方式

情況三:
當我想循環一個數組,並把數組的每個元素放到子組件的 [(ngModel)] 中時,出現了這個錯誤

<app-item *ngFor = "let item of data" [(ngModel)] = "item"></app-item>

問題原因是,ngModel 會去查找 ts文件中的 this.item ,然而我們並沒有在ts文件中定義 item。
換句話說,ngModel中傳入的值必須是文件的本地的變量,臨時的item不會被接受。

最後解決辦法是

<app-item *ngFor = "let item of data; let i=index" [(ngModel)] = "data[i]"></app-item>

通過indexOf獲取這個item在數組中的 index,然後 直接通過data[index]來傳入到ngModel中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章