SORU
7 ŞUBAT 2014, Cuma


AngularJS: submit arasındaki tüm form kontrolleri devre dışı bırakma ve sunucu yanıtı

Ben bir dillema hakkında ne olduğunu en iyi (doğru) yaklaşım istersem devre dışı bırakmak için form denetimleri (ya da en azından onları kullanılamaz için kullanıcı etkileşimi sırasında bir süre zaman tıkladığında bir nevi "Kaydet" ya da "Gönder" butonuna ve veri üzerinden seyahat teller. JQuery kullanmak istemiyorum kötü olan (!!!) ve sorgu tüm elemanları olarak aray (sınıf veya öznitelik işaretleyici tarafından) Düşündüğüm fikirlerden şimdiye kadar

  • 2 bildirimleri için abone olan cm-formu-kontrol özel Direktifi ile tüm öğeleri işaretle: "veri gönderildi" ve "veri işlenmiş". Daha sonra özel kod ikinci bildirim iterek sorumlu ya da bir söz gidermek.
  • Kullanım promiseTracker (maalesef!) ng-show="loadingTracker.gibi son derece aptalca bir kod üretmek için zorlar(etkin)". Öğeleri ng-engelli var ve ben don t tüm kullanıcı-ng gizle/göster önlemek için "dans" düğmeleri. belli değil
  • Bir mermi ısırık ve hala bir WordPress kullanmak kullanın

Herhangi birinin daha iyi bir fikri olan var mı? Şimdiden teşekkürler!

GÜNCELLEME: Alan kümesi fikri işe YARIYOR. İşte yine aynı şeyi yapmak isteyenler için basit bir keman http://jsfiddle.net/YoMan78/pnQFQ/13/

HTML:

<div ng-app="myApp">
    <ng-form ng-controller="myCtrl">
        Saving: {{isSaving}}
        <fieldset ng-disabled="isSaving">
            <input type="text" ng-model="btnVal"/>
            <input type="button" ng-model="btnVal" value="{{btnVal}}"/>
            <button ng-click="save()">Save Me Maybe</button>
        </fieldset>
    </ng-form>
</div>

ve JS:

var angModule = angular.module("myApp", []);

angModule.controller("myCtrl", function ($scope, $filter, $window, $timeout) {
    $scope.isSaving = undefined;
    $scope.btnVal = 'Yes';
    $scope.save = function()
    {
        $scope.isSaving = true;
        $timeout( function()
             {
                 $scope.isSaving = false;
                 alert( 'done');
             }, 10000);
    };
});

CEVAP
7 ŞUBAT 2014, Cuma


Tüm alanları sarınalan kümesive kullanınngDisabledbu gibi yönergesi:

<fieldset ng-disabled="isSaving"> ... inputs ...</fieldset>

Otomatik olarak alan kümesi içindeki tüm girişleri devre dışı bırakır.

Kumanda true $scope.isSaving çağrı http ve 8 ** sonra önce ayarlayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • CareyHolzman

    CareyHolzman

    24 Ocak 2008