我试图将按钮的名称从暂停付款更改为取消支付,它应该首先检查checkstatus.is_holdpayment的状态,然后执行函数userhold_payment()。我尝试了各种各样的东西,ng-show,ng-if,但是按钮的名称在点击时不会改变。点击它应该去,Hold,Unhold,Hold,Unhold,并执行相同的功能userhold_payment()。我想用AngularJS改变按钮的名字。什么是错误。这里是main.html如何更改按钮的名称? Ng-show,ng-if,ng-click不起作用?
<div ng-init="check_status()">
<button type="button" ng-if="checkstatus.is_hold_payment" ng-click="userhold_payment();" class="btn-success btn-lg hold_payment_html" style="margin-top:7px; font-size:16px">Hold</button>
<button type="button" ng-if="!checkstatus.is_hold_payment" ng-click="userhold_payment();" class="btn-success btn-lg hold_payment_html" style="margin-top:7px; font-size:16px">UnHold</button>
</div>
这是功能的控制器。
$scope.userhold_payment = function() {
$http.get('http://localhost/ngaffiliate/api/payment/change_hold_payment_status')
.then(function(response) {
console.log('I called');
$scope.userhold = response.data;
console.log($scope.userhold.is_hold_payment);
});
};
//this will call when ever your controller reinstance
($scope.check_status = function() {
$http.get('http://localhost/ngaffiliate/api/payment/check_payment_status')
.then(function(response) {
console.log('I called now')
$scope.checkstatus = response.data;
// console.log(response);
console.log($scope.checkstatus.is_hold_payment);
if($scope.checkstatus.is_hold_payment=="0")
$scope.checkstatus.is_hold_payment = true;
else($scope.checkstatus.is_hold_payment=="1")
$scope.checkstatus.is_hold_payment = false;
$scope.checkstatus.is_hold_payment =!$scope.checkstatus.is_hold_payment;
console.log($scope.checkstatus.is_hold_payment);
});
})();
你不改变'$ scope.checkstatus值,is_hold_payment'在被要求点击('$ scope.userhold_payment()')的功能,所以自然文字不会改变。尝试在'$ scope.userhold_payment()'中调用'$ scope.check_status()'。 是的,你应该也可以删除Maciej Sikora告诉你的行,因为它会恢复变化。 – Fissio