2016-02-22 228 views
0

我有一個下拉菜單,其中包含一個複選框和項目名稱。我添加了一個ngModel來檢查項目是否應該包含在項目列表中(isChecked)。以下代碼在視圖中:Angular 2 ngFor和ngIf

<div id="dropdown-menu"> 
     <button id="show-users" (click)="showMenu = !showMenu">Project toevoegen</button> 
     <div id="drp-project-select"> 
      <div class="scroller" [hidden]="!showMenu"> 
       <div id="search-wrapper"> 
        <i class="fa fa-search"></i> 
        <input [(ngModel)]="searchTerm" type="text" placeholder="Zoek op naam..." > 
       </div> 
       <ul> 
        <li *ngFor="#project of projectdata.LoginResponse?.ProjectVM, #i = index"> 
         <label class="checkbox-label" > 
          <input type="checkbox" class="dropdown-checkbox" [(ngModel)]="project.isChecked" > 
          <span>{{project.Project}}</span> 
         </label> 
        </li> 
       </ul> 


      </div> 
     </div> 
    </div> 

然後我嘗試獲取列表中的選中項目,但似乎不起作用。我知道我做錯了什麼,但我無法弄清楚什麼。我嘗試了不同的地方貓王操作,但沒有一個地方的工作,所以這不是它(我認爲)

<ul> 
    <li *ngFor="#checked of projectdata.?LoginResponse?.ProjectVM?.isChecked"> 
      <span>{{checked}}--</span> 
    </li> 
</ul> 
+0

那麼,有什麼問題呢?你能指望什麼?什麼是實際行爲? –

+0

問題是,在第二個代碼塊中,我期望看到列表被填充true或false(後來這將是projectName)。 實際行爲不算什麼,甚至沒有 - {{checked}}之後 – JanVanHaudt

回答

1

這對我的作品。看到這個plunkr:https://plnkr.co/edit/AdhgKeXjshFUL1ruRtMJ?p=preview

我認爲該項目是在最後一個循環。你應該使用這樣的:

<ul> 
    <li *ngFor="#project of projectdata.?LoginResponse?.ProjectVM"> 
    <span *ngIf="project.isChecked">{{checked}}--</span> 
    </li> 
</ul> 

projectdata.?LoginResponse?.ProjectVM?.isChecked不是數組...