2014-07-01 31 views
6

üzerinde kaybolur:güncellenmesi modeli Bu kodda giriş kontrolü

<input class="form-control" ng-model="actionText" /> 

angularjs kullanıcı tipleri şeyler gibi model actionText güncelleyecektir bu model başka yerde kullanılıyorsa, bu tür bir denetleyici gibi. Her karakter yazdıkça güncellenir. Bunun aslında kötü bir şey olabileceği durumları düşünebilirim. Belki de, sadece kullanıcı değeri, giriş tamamlandıktan sonra girişi doğrulamanız gerektiğinde olduğu gibi, kullanıcının girişten başka bir şeye odaklanmasını tercih eder. Odak noktasını kaybettiğini belirlemek için bir işleyiciyi ayarlamak için Javascript'in bulanıklık işlevini kullanabilirdim ama bu Angular'ın olması gerektiği gibi görünüyor. Giriş kaybettikten sonra modeli güncellemenin AngularJS yolu var mı?

cevap

15

Bunun için ngModelOptions direktifini kullanabilirsiniz. ngModelOptions ile ngModel yönergesinin nasıl çalıştığını daha da hassaslaştırabilirsiniz. ne için sorulan ulaşmak için, bu gibi kullanmak olabilir:

<input class="form-control" ng-model="actionText" 
    ng-model-options="{ updateOn: 'blur'}"/> 

Daha detaylı bilgi ve açısal belgelerinde bir çalışma örneği bulabilirsiniz: Ben ng-model seçenekleri gibi yapmak https://docs.angularjs.org/api/ng/directive/ngModelOptions

+0

Bu, 1.3 öncesi branşlarda çalışır mı? – lucuma

+0

Doğrulamanın yapılması önerilen yol bu muydu? Başka bir deyişle, odağı kaybettikten sonra, bazı modellerin girişini (adres, telefon numarası, vb.) Doğrulamak istersiniz. – AndroidDev

+0

@lucuma Eski şubelerde çalışıp çalışmadığını gerçekten bilmiyorum. – Nikolas

2

Bence en kolay yolu, yapmak istediğiniz bir şeyden vazgeçmek için sadece ng-blur'u kullanabilir.

http://plnkr.co/edit/rhcliQRzUOBKQ3xKFrde?p=preview

app.controller('MainCtrl', function($scope) { 

    $scope.myDataBlurred = $scope.myData; 

    $scope.blurred = function() { 
    $scope.myDataBlurred = $scope.myData; 
    } 
}); 

<input ng-model='myData' ng-blur='blurred()' /> 

    <div> 
     This will update as you type: {{myData}} 
    </div> 
    <div> 
     This will update after you blur: {{myDataBlurred}} 
    </div> 
+0

yayınlanmıştır olarak @ Nikolas tarafından. Kullanım durumunuza ve açısal sürümüne bağlıdır. – lucuma