SORU
26 EYLÜL 2012, ÇARŞAMBA


Bozulmamış durumuna formu (AngularJS 1.0.Sıfırla x)

Tertemiz durumu (reset kirli devlet) için form alanları sıfırlamak için bir işlevi AngularJS 1.1 için yol haritası.x. Ne yazık ki böyle bir işlev mevcut kararlı sürümü eksik.

Ne AngularJS için ilk bozulmamış durumuna 1.0 için tüm form alanlarını sıfırlamak için en iyi yoldur.x.?

Eğer bu bir Direktif veya diğer basit çözüm ile tamir edilebilir olup olmadığını bilmek istiyorum. Orijinal AngularJS kaynakları dokunmak zorunda kalmadan bir çözümü tercih ederim. Ve sorunu açıklığa kavuşturmak göstermek için JSFiddle linki var. http://jsfiddle.net/juurlink/FWGxG/7/

İstenen özellikYol haritası- http://blog.angularjs.org/2012/07/angularjs-10-12-roadmap.html< / ^ br . Özellik isteği- https://github.com/angular/angular.js/issues/856< / ^ br . Önerilen çözümİstek çekin- https://github.com/angular/angular.js/pull/1127< / ^ br . < / ^ br .

Olası bir geçici çözüm vardır

Yeterince iyi çözüm?

Ben sadece HTML kısmı yeniden derleyin ve arka DOM içine koyabilirim anladım. Çalışır ve @yorumlarda bahsedilen blesh gibi geçici bir çözüm için, ama aynı zamanda önemli değil

Kontrol, DOM için değil, iş mantığı için kullanılmamalıdır!

<div id="myform">
  <form class="form-horizontal" name="form">
  </form>
</div>

Ve resetForm() benim Denetleyicisi:

  • Orijinal el değmemiş HTML kaydedin
  • Kaydedilmiş orijinal HTML yeniden derleyin
  • DOM itibaren geçerli form çıkarın
  • Ekle DOM içine yeni derlenmiş şablonu

JavaScript:

var pristineFormTemplate = $('#myform').html();
$scope.resetForm = function () {
    $('#myform').empty().append($compile(pristineFormTemplate)($scope));
}

CEVAP
23 EYLÜL 2013, PAZARTESİ


Açısal sonraki sürümleri (örneğin 1.1.5), $setPristine formda diyebilirsin, bu kayda değer olduğunu düşünüyorum.

$scope.formName.$setPristine(true)

Bu bozulmamış durumuna tüm form denetimlerini çok daha iyi olacaktır.

FormController.$setPristine

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • super1988guy

    super1988guy

    9 Aralık 2007