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

  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • lifeisforsharingDT

    lifeisforsha

    18 Mayıs 2011
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008