SORU
27 Mart 2013, ÇARŞAMBA


Nasıl iç içe nesneleri kullanırken AngularJS özyinelemeli şablonları yapabilir miyim?

Form öğeleri form iç içe gruplar içeren bir JSON ojbect, dinamik olarak oluşturmak için çalışıyorum:

  $scope.formData = [
  {label:'First Name', type:'text', required:'true'},
  {label:'Last Name', type:'text', required:'true'},
  {label:'Coffee Preference', type:'dropdown', options: ["HiTest", "Dunkin", "Decaf"]},
  {label: 'Address', type:'group', "Fields":[
      {label:'Street1', type:'text', required:'true'},
      {label:'Street2', type:'text', required:'true'},
      {label:'State', type:'dropdown',  options: ["California", "New York", "Florida"]}
    ]},
  ];

Ng-anahtar blokları kullanıyorum, ama Adresi yukarıda nesne gibi iç içe geçmiş öğeleri ile savunulamaz hale gelir.

İşte keman: http://jsfiddle.net/hairgamiMaster/dZ4Rg/

Bu iç içe geçmiş bir yaklaşım sorunu nasıl herhangi bir fikir? Çok teşekkürler!

CEVAP
27 Mart 2013, ÇARŞAMBA


Bu sana yardımcı olabilir diye düşünüyorum. Bir ağaç özyinelemeli unsurlar hakkında Google Group bulduğum bir cevap.

Brendan Owen dan öneri: http://jsfiddle.net/brendanowen/uXbn6/8/

<script type="text/ng-template" id="field_renderer.html">
    {{data.label}}
    <ul>
        <li ng-repeat="field in data.fields" ng-include="'field_renderer.html'"></li>
    </ul>
</script>

<ul ng-controller="NestedFormCtrl">
    <li ng-repeat="field in formData" ng-include="'field_renderer.html'"></li>
</ul>

Önerilen çözüm kullanan bir şablon kullanarak ng-eklerseniz, geçerli öğenin çocuk varsa kendisini arayıp yönergesi hakkında.

Senin durumunda, ben olsam deneyin oluşturmak için bir şablon ile ng-geçiş yönergesi (bir vaka başına tür etiket yaptığın gibi) ekleyebilirsiniz ng vardır sonunda eğer varsa alt etiketleri.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • emimusic

    emimusic

    10 Mart 2006
  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010