2017-08-09 115 views
0

我對Angular2有點新了。* ngFor後會發生什麼?

GetYapiBelge() { 
    var filterInfos = new Array<FilterInfo>(); 
    filterInfos.push(this.AddFilterInfo(General.Syscd, "SYSCD")); 
    filterInfos.push(this.AddFilterInfo(this.YapiBelgeTurId, "YPBLGTRID")); 

    this._ServiceIslemlerSvc.GetYapiBelgeBasvuruByFilter(filterInfos).subscribe((result) => this.GetYapiBelgeBasvuruByFilterCompleted(result)); 
} 

GetYapiBelgeBasvuruByFilterCompleted(result: any) 
{ 
    this._ActiveYapiBelgeBasvuruBec = result; 

    $('#dtYapiBelge').DataTable(); 
    $('.collapse') 
     .on('shown.bs.collapse', function() { 
      $(this) 
       .parent() 
       .find(".fa-plus") 
       .removeClass("fa-plus") 
       .addClass("fa-minus"); 
     }) 
     .on('hidden.bs.collapse', function() { 
      $(this) 
       .parent() 
       .find(".fa-minus") 
       .removeClass("fa-minus") 
       .addClass("fa-plus"); 
     }); 

} 

js代碼是關於我的grid.I找到了一些庫,並使用它。 它正在工作,當我添加所有clomns項目hardway.But我得到他們與我的服務不起作用。

當我第一次調試時,我可以在我的網格上看到js代碼的效果,但獲得項目後它已經不存在了。我在我的HTML端使用ngFor我想我需要一些讓ng代碼完成後觸發js代碼的東西或類似的東西。

有什麼想法嗎?

+2

還有一個人這樣做,所以我會多說一次:停止使用Angular和jQuery。以Angular方式或者jQuery方式來做事。 Angular構造DOM,jQuery操縱它。他們是不同哲學的競爭者,而不是互補的東西。您只需加載兩個庫,並生成過於笨拙和複雜的代碼,無法正常工作。 –

回答

0

* ngFor保留一個布爾變量'last'來標識數據是否爲last。所以只需將該值分配給一個變量並在其爲真時調用一個函數。檢查下面的代碼行。這可能會幫助你。

<ul> 
     <li *ngFor="let i of items; let last = last">{{last ? yourFunction() : ''}}</li> 
    </ul> 
+0

感謝它的工作:) –

+0

@gülcanyanık歡迎。 :) –

0

確保在HTML中使用了正確的格式,沒有其他指令綁定到同一個元素,並且您正在迭代的變量是一個數組。

<ul> 
    <li *ngFor="let word of dictionary"> 
     {{word}} 
    </li> 
</ul> 

你並不需要一個函數類做什麼特別的ngFor

+0

我已經擁有了它,但是當我得到我的「字典」時,js代碼不再工作 –

+0

我回復@JeremyThille,但是您的代碼仍然不完整。我不知道* ServiceIslemlerSvc.GetYapiBelgeBasvuruByFilter *正在做什麼。 – 2017-08-09 13:35:20