2015-10-13 64 views
1

我有一个角度的应用程序进行身份验证用户,其中联系webservice 进行身份验证。 Webservice返回一个json,其中如果用户通过身份验证,则将用户路由到一个页面。如果没有,我显示一个隐藏的div。角js麻烦显示div元素

问题是,它第一次正常工作。比如说,用户输入了无效的凭证,div显示出来。如果用户再次输入无效凭证,则什么也不会发生。但是,从服务器json收到。警报();工作正常..但显示div只能工作一次。我怎样才能达到这个任何数量的失败条目? 。 感谢您的帮助..张贴片段。

login.controller('loginController', function($scope, $http) 
{ 
    $scope.credentials = {}; 
    var popFailmessage = function(){ 
     //function for displaying div 
     $("#danger-alert").show(); 
      $("#danger-alert").fadeTo(2000, 500).slideUp(500, function(){ 
      $("#danger-alert").alert('close'); 

      }); 
    } 
    $scope.authenticate = function(user){ 
     var credentials = user;// angular.copy(user); 
    $http({ 
method: "GET", 
url: "http://localhost:8000/index/action", 
params: { 
    email : credentials.email, 
    password : credentials.password 
} 
}).success(function (data, status, headers, config) { 
    console.log(data); 
     if(data == 0){ 
      popFailmessage(); //calling method here 

     }else{ 
      //redirect to some page 
     } 
    }) 
    .error(function (data, status, headers, config) { 
     console.log(data); 
    }); 


    } 


}); 

和HTML部分..

<div class="alert alert-danger" id="danger-alert" style="display:none"> 
<button type="button" class="close" data-dismiss="alert">x</button> 
<center> <strong>Login Failed! </strong> 
Please check your ID/ Password.</center> 

在此先感谢!

+0

这只是代码的一部分,这里没有足够的信息供其他人复制问题并调试您的逻辑。你应该更新你的问题,包括问题的[mcve],最好是使用类似plunker的东西。除此之外,你在问为什么角没有显示弹出窗口,但函数不是角度的。 '$'是JQuery。 – Claies

+0

如果我不得不猜测,而不是JQuery的专家,那么我的第一个猜测就是您不会每次都创建一个新的div,您正在尝试重新使用现有的div,并且您已经使用了无效的语法'.fadeTo()'函数(第二个参数,不透明度,从'0'到'1'有效,但你有'500'),所以div消失了,并且在下次尝试显示时不会再出现它。 – Claies

+0

@Claies我刚刚告诉,它的一个角度的应用程序..这是它的大部分..核心逻辑..我发射ajax和即时获取数据。发布让我无法使用jquery显示div。如前所述,它第一次正常工作,然后不响应......但我可以看到来自服务器(console.log)的数据。 ..i认为包括所有东西..从调用web服务到显示div。 – Pavan

回答

1

@Pavan,你可以试试下面的代码:

var popFailmessage = function(){ 
    //function for displaying div 
    $("#danger-alert").show(); 
     $("#danger-alert").fadeTo(2000, 500).slideUp(500, function(){ 
      $("#danger-alert").alert('close'); 
      $("#danger-alert").hide(); 
     }); 
} 

它应该工作。

+0

它也没有工作! :(! – Pavan

+1

检查控制台是否出现如下错误: $(...)。alert不是函数 如果是的话,请在注释以下行后尝试 $(“#danger-alert “).alert('close'); –

+0

@JS在控制台中没有错误:| – Pavan