2016-11-13 66 views
0

我有一個讓我發瘋了一個奇怪的問題吳開關在NG-重複問題

我基本上是有不同類型的物品清單:新聞,微博和視頻

我使他們像這樣的:

<div ng-repeat="item in items | orderBy:-timestamp track by item.id" ng-switch="item.type"> 

     <?php 
      include("templates/ang-youtube.html"); 
      include("templates/ang-tweet.html"); 
      include("templates/ang-news.html"); 
     ?> 

</div> 

裏面的每一個包括我正在做這樣的事情:

<div class="item" masonry-brick ng-switch-when="news"> 
...content in here 
</div> 

<div class="item" masonry-brick ng-switch-when="tweet"> 
...content in here 
</div> 

<div class="item" masonry-brick ng-switch-when="youtube"> 
...content in here 
</div> 

現在的問題是YouTube的項目總是先渲染。項目(時間戳)的順序被忽略。推文和新聞項目雖然呈現正確。

如果我刪除開關,只是列出項目作爲文本,然後一切都按正確的順序。只要我添加開關,youtube項目就會再次呈現。

任何想法我做錯了什麼?

我試圖移動NG-中繼器內的開關,像這樣:

<div ng-repeat="item in items | orderBy:-timestamp track by item.id"> 

    <div ng-switch="item.type"> 
      <?php 
       include("templates/ang-youtube.html"); 
       include("templates/ang-tweet.html"); 
       include("templates/ang-news.html"); 
      ?> 

    </div> 
</div> 

但它沒有什麼區別。 youtube項目總是首先呈現。

如果我檢查$ scope.items數組,它們按時間戳正確排序。

我也使用NG-如果不是一個開關,但得到了同樣的結果

任何想法試過嗎? :-(

使用也試過NG-包括這樣的:

<div ng-include="'templates/ang-{{item.type}}.html'"></div> 

但是,這並不工作

+0

所有這些php包括真正有意義,當你可以使用'ng-include'與基於類型的動態url或創建自己的自定義指令。 d到僅作爲數據源的服務器,並將您的模板和業務邏輯轉化爲角度 – charlietfl

+0

我嘗試過使用ng-include並沒有什麼區別。同樣的結果。 YouTube項目首先呈現。 – Robi

+0

預期結果的更好解釋將有助於數據樣本。見[mcve] – charlietfl

回答