ng-disabled angular js用于评估获取$ http.get的函数

时间:2014-11-19 05:16:36

标签: javascript php html angularjs-scope angularjs-ng-click

我正在尝试使用ng-disbaled按钮来评估控制器中的一个函数,该函数返回来自$ http.get的请求,这里是我的代码

我的HTML代码

<a class="btn btn-warning"  ng-click="upVote(item,me.email);" ng-disabled="votecheck(item,me.email) != 'canvote'">

控制器

$scope.votecheck = function(item,emailid){
    var email = emailid;

http.post('ajax/voters.php?id='+item.ID+'&email='+email).success(function(data)
{

        if(data === "CanVote")
        {
            return "canvote";
        }
else
{
    return "cant vote";
}
    });

};
如果超过sql状态,我的php echo可以投票或者不能投票给数据库 有人请帮助完成这项工作

请注意我的商品ID已预先加载了以前的范围功能

3 个答案:

答案 0 :(得分:3)

试试这个

$scope.votecheck = function (item, emailid) {

     return $http.post('upload.php').then(function(data) {

         if (data === "CanVote")
             {
                  $scope.returnValue = "canvote";
             }

             else
             {
                  $scope.returnValue = "cant vote";
              }

                  return $scope.returnValue;
              });

};

$scope.votecheck(item, emailid).then(function(data) {
    console.log(data);
})

答案 1 :(得分:0)

由于您正在使用http.post进行异步调用,因此您无法“返回”本身的值。

您需要根据进入成功回调的数据在示波器上设置一些canVote属性。

所以html就像:

<a class="btn btn-warning"  ng-click="upVote(item,me.email);" ng-disabled="!canVote">

您的新功能如下:

function voteCheck(item,emailid) {
  var email = emailid;
  http.post('ajax/voters.php?id='+item.ID+'&email='+email).success(function(data) {
    $scope.canVote = (data === 'CanVote');
  });
}

voteCheck(item, emailid);

答案 2 :(得分:0)

hi all i was able to solve my problem using traditionall javascript .ajax with this

Thanx y'all    

$scope.votecheck = function(item,emailid){
        var email = emailid;
       var jsonData = $.ajax({
        type: "GET",
              url: 'ajax/voters.php?id='+item.ID+'&email='+email,
                    dataType: 'json',
                    async: false
                }).responseText;
    if(jsonData === "CanVote"){

        return true;
    }
    else{

        return false;
    }   //return "canvote";
    }