我正在尝试使用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已预先加载了以前的范围功能
答案 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";
}