2013-01-30 15 views
5

Bir JSON dosyası yükleyen ve HTML5 tuval çizimi oluşturmak için bu verileri kullanan bir yönergeye sahibim (yani, json verileri metin, renk, konum gibi şeyleri içerir). Ayrıca, kullanıcının çizimi manipüle etmesine izin veren bir dizi girdi alanı (metin, sürgü, vb.) Var. Görüyorum ki, bu elemanların her birini seyredebilirim ya da ng-tıklamasını kullanabilir ve bir işlevi çağırabilirim - tavsiye edilen bir yaklaşım var mı?ng-click vs Angular'de izle

Bazı belki alakalı notlar:

  • form öğesi ve tuval
  • form elemanları Onchange hiçbir düğmeye
  • bu form öğesi değerinin her göndermek tepki aynı yönerge şablonunun bir parçasıdır kontrol edilir, belki dönüştürülür, daha sonra json dizesini değiştirirler. Ardından tuvalimi yeni verilerle yeniden yükleyen bir yenileme işlevi çağırıyorum.

Ben (bir direktif içinde) bazı unsurları kullanıcı tarafından bazı eylemler vardır anladığım kadarıyla, Yani ... Bu çok yanlış şekilde yaklaşan olduğumu

cevap

7

mümkündür ve bir şeyler yapmak zorunda Bu olaylar her zaman kovulur.

$ watch'in amacı, belirli bir değişkenin değeri her değiştiğinde bir şeyi 'izlemek'/yapmaktır. $scope.$watch('watchedVariable', onWatchedVariableChangedFn) onWatchedVariableChangedFn bir işlevdir. Bu, yalnızca değerin gerçekte ne zaman değiştiğine bakılmaksızın değiştiğinde tetiklenir.

Diğer taraftan, olay işleyicilerini ng-click='onClickFn()' gibi işaretleme niteliklerine bağlayabilirsiniz. Bunlar UI öğeleri üzerindeki eylemlerden kovulur. [Ayrıca, tıklama tıklaması yalnızca tıklanabilir öğeler üzerinde çalışacaktır. Birden çok öğeye sahip (metin, sürgü, vb.) Görünüyorsunuz.]

Bu değerlerin değişmesine tam olarak neden olan şeyleri görmeniz veya tuvalinizi yeniden çizmeniz ve ardından hangi yöne gitmek istediğinize karar vermeniz gerekebilir.

Düzenleme: Göz önünde bulundurmak isteyebileceğiniz üçüncü bir alternatif, olayları ($ emit/$ broadcast) başlatmak ve uygulanabilir olduğunda bu olayları işlemek ($ on) yapmaktır.