SORU
19 Ocak 2013, CUMARTESİ


Ng-model bağlama içinde ng-repeat döngüsünde AngularJS

Ng-tekrar bir döngü - pek çok soru göz ama oldukça işe kodumu almak mümkün olmamıştır ettik içinde kapsam sorunu ile baş etmeye çalışıyorum.

Denetleyicisi kod:

function Ctrl($scope) {
  $scope.lines = [{text: 'res1'}, {text:'res2'}];
}

Görünüm:

<div ng-app>
     <div ng-controller="Ctrl">
       <div ng-repeat="line in lines">
           <div class="preview">{{text}}{{$index}}</div>

       </div>
       <div ng-repeat="line in lines">
           <-- typing here should auto update it's preview above -->
           <input value="{{line.text}}" ng-model="text{{$index}}"/>
            <!-- many other fields here that will also affect the preview -->
       </div>
     </div>
    </div>

Burada bir parçaymış: http://jsfiddle.net/cyberwombat/zqTah/

Temelde, birkaç satırlık metin içeren bir nesne (flyer jeneratörü) var. Metnin her satırı kullanıcı (metin, yazı tipi, boyut, renk, vb) tarafından değiştirilebiliyor ve bunun için bir önizleme oluşturmak istiyorum. Yukarıdaki örnekte sadece giriş alanına metin girmek için gösterir ve o-tipi otomatik olarak önizleme/div update etmek istiyorum ama çok daha fazla denetim olacak.

Ayrıca döngü dizini - en güzeli de bu döngü içinde ng-model adı oluşturmak için? kod doğru yaptığımdan emin değilim

CEVAP
19 Ocak 2013, CUMARTESİ


Ng-repeat döngüsü, line Her yineleme için dizinizi bir nesne için bir başvuru. Bu nedenle, önizleme değeri, {{line.text}} kullanın.

Benzer şekilde, aynı databind metni için databind için: ng-model="line.text". Ng-model (aslında olmamalı) kullanırken value kullanmana gerek yok.

Fiddle.

Derinlemesine bak kapsamları ve ng-tekrar bir daha bakın What are the nuances of scope prototypal / prototypical inheritance in AngularJS? bölümng-tekrar ediyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jejoab

    Jejoab

    4 NİSAN 2008
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006