2016-08-20 74 views
0

我現在在Angular2中太深了。但卡在一個地方。以下是我的模板代碼:Angular2調用模板組件的方法

<div class="container" *ngFor="let group of groupList"> 
       <div class="row"> 
        <div class="col-xs-12"> 
         <some-child-component [store]="group[0]" [class.hide]="evalStore(group[0])"></some-child-component> 
        </div> 
      </div> 
    </div> 

我正在從我的模板中調用evalStore(group[0])方法。此方法存在於相應的組件類中,如下所示:

evalStore(item:any) { 
    console.log('inside evalStore'); 
    if(item === undefined){ 
     return false; 
    } else { 
     return item.type !== 'store'; 
    } 
    } 

由於某種原因,此方法沒有被調用。我的chrome開發工具的控制檯窗口沒有顯示與其相關的任何錯誤。

請幫忙...

+0

有時角度不會引起錯誤糾正。在Chrome中,嘗試勾選複選框「暫停捕捉到的例外」。它可能會幫助您找到錯誤的來源 –

回答

0

您正在使用值綁定不正確。 [class.hide]不是有效的屬性。方括號用於將屬性綁定到值或表達式。就像你在這裏。

<div [store]="group[0]"> 

你正在試圖做的一類結合這需要一個值結合[ngClass],然後將含有鍵/值對的對象的表達式。每個鍵表示類名稱,每個值表示一個表達式,該表達式應返回布爾值truefalse。這適用於多個類。

<div [ngClass]="{hide: evalStore(group[0])}"> 

如果你的類名稱使用特殊字符,如破折號-你需要用引號括您的鑰匙。

<div [ngClass]="{'hide-me': evalStore(group[0])}">