2015-03-16 11 views
13

herkes http çağrı başarısına çapa etiketi devre dışı bırakma bana yardım yanılma onu etkinleştirmeniz ve tersihttp çağrı başarısına çapa etiketlerini devre dışı bırakma

Bu benim Html sayfası Can

<a href="#" id="register_pointer" data-toggle="modal" data-target="#myModal1"> 
    <div class="plus"> 
     <i class="fa fa-2x fa-plus"></i> 
    </div> 
    <div class="register"> 
     <h4>Create</h4> 
     <p>New Account</p> 
    </div> 
</a> 

Bu

$scope.MqUser=[]; 
$scope.getMqUser = function() { 
    usSpinnerService.spin('spinner-1'); 
    MQDetailsService.getUserDetails().success(function(data, status) { 
     console.log(data); 
     usSpinnerService.stop('spinner-1'); 
     $scope.createQ = false; 
     $scope.MqUser = data; 
     console.log("Success in getting the user list"); 
     console.log($scope.MqUser); 
     //I want the anchor tag to get disabled here using angular directive. 
    }).error(function(data,status){ 
     //I want the anchor tag to get enabled here using angular directive. 
     $scope.createQ = true; 
     console.log(data); 
     if(status == 0){ 
      $scope.networkError(); 
     } 
     else{ 
      $scope.fetchuserFail(data.message); 
     } 
     usSpinnerService.stop('spinner-1'); 
     console.log("Failed to load the user list "+status); 
    }) 
} 
$scope.getMqUser(); 

cevap

7

saf angularjs çözüm

benim denetleyicisi olan senin success Geri arama durumunda

sizin error Geri arama durumunda
.success(function(data){ 

    $scope.disableAnchor = true; 

}) 

.error(function(data){ 

    $scope.disableAnchor = false; 

}) 

Kişisel bağlantı etiketi controller içerisinde Sonra

<a ng-click='clickAnchor($event)' href="#your_href"> <a/> 

$scope.clickAnchor = function($event){ 

    if ($scope.disableAnchor) 
     $event.preventDefault() 

} 

Ben Saf angularjs çözüm kullanmanızı öneririz error callback'inde

.error(function(data){ 

    $("#your_anchor").on('click',function(e){ 
    }) 

}) 

içinde success callback'inde

.success(function(data){ 

    $("#your_anchor").on('click',function(e){ 
     e.preventDefault(); 
     return false 
    }) 

}) 

A olmayan saf angularjs çözüm

.

+0

Bu işlem çalışırken, saf bir AngularJS çözümü değildir. JQuery kullanamayacak birini biliyor musun? –

+0

@KirillSlatin bunu güncelledi. – levi

+0

güzel! Güncelleme için teşekkürler. Dürüst olmak gerekirse ... –

1

Bağlantı etiketini etkinleştirmek ve devre dışı bırakmak için data-href'i kullanabilirsiniz. Lütfen verilen koda bakın, Umarım size yardımcı olur.

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <input type=checkbox onclick="enableEdit(this)"/> 
     <div onclick="enable()">Enable</div> 
     <div onclick="disable()">Disable</div> 

     <a id="anc" data-href="call.html" href="#">click here</a> 

     <script type="text/javascript"> 
      function enable() { 
       $('#anc').attr("href", $('#anc').data("href")); 
      } 

      function disable() { 
       $('#anc').attr("href", "#"); 
      } 
     </script> 
+0

yup jQuery kullanarak yaptım .... Ama bunu açısal yönerge kullanarak yapmalıyım.Ajax Başarı çağrısı çapa etiketini devre dışı bırakılacak ve hata durumunda etkin olmalıdır –

+0

bana örnek kodunu verebilir misin çalışma kodu – luckwithu

4

kullanmakta geri başarı çağrısında tıklama işleyicisi kurtarabilir miyim jQuery

.success(function(data){ 

$("#register_pointer").unbind("click") // unbind the click 
$("#register_pointer").css('pointer-events', 'none'); //this will also prevent all the events like hover,mouse over etc. 
}); 

fikirde olan (

$("#register_pointer").bind("click"); 
$("#register_pointer").css('pointer-events', ''); 
+0

güzel bir çözüm. Ancak, işaretçi olayları IE'de desteklenmez <= 9 –

+0

@VinayK evet işaretçi olayları IE <= 9'da desteklenmez ve anchor öğesinin bulunduğu ana bileşenlerde olayların tetiklenmesine izin vermeye devam eder. –

1

Benim düşünceme aşağıda verildiği gibi istediğiniz zaman onları geri alabilirsiniz Spesifikasyonlara göre - discussion), bu tam amaç için ng-disabled yönergesinin yaratılmış olmasıdır. işaretçi-olaylar IE < 11 desteklenmez ise, hala IE Ayrıca çünkü çalıştığını

a[disabled] { 
    pointer-events:none; 
} 

Example here

Not: devre dışı nitelik çapa elemanları üzerinde hiçbir etkisi yoktur olduğundan, bunu düzeltmek için benim işim Anchor'larda devre dışı bırakılmış özniteliği hatalı olarak kabul eder. Diğer tarayıcı desteği pretty good.

İlgili konular