2017-09-24 15 views
0

晚上好開發動態生成的複選框,這樣結合在一個數組動態生成值我複選框,當我有這個問題。基本上,我有我的users.template.html文件中的以下內容:ID的綁定數組在Angular4

<div *ngFor="let r of roles" class="checkbox"> 
    <label for=""> 
     <input type="checkbox" id="{{ r.name }}" (change)="onRoleChange(r.name, $event)" [checked]="userRoles.includes(r.name)"> {{ r.name }} 
    </label> 
</div> 

基本上它是更新用戶已基於動態生成的給定的複選框中的作用。現在,(其他城市)奇妙的作品,但[檢查]拋出​​一個錯誤說以下內容:

無法讀取財產「包括」未定義

我不知道爲什麼,因爲到處都是我看着它指出我對這種類型的動態內容使用這種綁定。所以,如果你有他們請任何指針會很棒。提前謝謝大家的任何建議。

+0

似乎'userRoles'不被任何定義?它從何而來? – amal

+0

我在開始爲***定義的UserRole它:任何[]; ***,然後初始化上ngOnInit其數據(),以獲得它填滿。 –

+0

你能展示其內容的樣本? – amal

回答

0

你不能叫繼承在模板中直接按我的理解特定type的對象的方法。你可以調用一個組件方法,而不是爲你做這個計算。

<input type="checkbox" id="{{ r.name }}" (change)="onRoleChange(r.name, $event)" [checked]="presentInUserRoles(r.name)"> 

組件

presentInUserRoles(role: string): boolean { 
return this.userRoles.includes(role); 
} 
+0

這個工作,不知道爲什麼它限制壽,它曾經像以前的其他工作方式。 –

+0

如果你能證明它之前是如何工作的一個例子,可能是我可以嘗試指出的差別。您當然可以引用對象'在模板內'的特定屬性,但不能調用屬於其原型的繼承方法。 – amal