2015-07-07 24 views
6

Bu nesneyi Angular içinde aldım. En İyi Yöntemler: Bunun için ng anahtarını kullanmalı mıyım?

$scope.columns = { 
    workspace: { 
     title: "Workspace", 
     type: "workspace", 
     activities: [] 
    }, 
    alerts: { 
     title: "Alerts", 
     type: "alert", 
     activities: [] 
    }, 
    main: { 
     title: "Main Feed", 
     type: "main", 
     activities: [] 
    } 
}; 

Ve HTML ben her type özel direktifi için bir referans

(Trello gibi bir şey düşünmek) dinamik olarak benim app sütun serisini oluşturmak için içinden döngü gerekir.

Yönergelerimi yerleştirmenin en iyi yolunu bulmaya çalışıyorum.

Bu verilere dayanarak, aşağıdaki kodları dinamik olarak oluşturmak için uygun bir yol aşağıda mı? Ben isterdim

<div ng-repeat="(key, obj) in columns"> 

    <div ng-switch on="obj.type"> 
     <workspace-feed ng-switch-when="workspace" /> 
     <alert-feed ng-switch-when="alert" /> 
     <main-feed ng-switch-when="main" /> 
     <filter-feed ng-switch-when="filter" /> 
    </div> 

</div> 

... gibi <{{obj.type}}-feed /> şey yapmak mümkün ama bu geçerli olup olmadığından emin değilim, ya da varsa daha iyi bir yolu bu oluşturun.

Düşünceler çok minnettar!

+0

ngSwitch ile ilgili sorun nedir? – dfsq

+0

Bu iyi görünüyor. Her bir besleme ne kadar farklı? Belki de her feed için ayrı direktiflere ihtiyacınız yoktur. Belki de sütun türüne göre bir şablonu dinamik olarak yükleyen tek bir direktif kullanabilirsiniz. Sütunlarına bağlı. – Agop

+0

@dsfq - bununla ilgili yanlış bir şey yok, sadece böyle bir şey için 'en iyi uygulamaları' arıyorum. –

cevap

2

Şu ana kadar neler var?

Sütunlarınızın ne kadar farklı olduğuna bağlı olarak, birden çok yönerge yerine bir şablonu dinamik olarak yükleyen yalnızca bir yönergeyi kullanmayı tercih edebilirsiniz. Örneğin, bkz. ng-include:

<div ng-include="'columns/' + column.type + '.html'"></div> 
İlgili konular