angular.js - AngularJS ng-show 值已经是true了,但是还显示ng-hide
本文介绍了angular.js - AngularJS ng-show 值已经是true了,但是还显示ng-hide的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
用ng-show来控制一个弹出框
在一个button的click事件中更改value的值(用到了jQuery Ajax)
通过console.log看到value的值确实已经变成true了,但是点击按钮,没有弹出订单异常的框,第二次点击就能弹出来了
为什么需要执行两次才能弹出?
把$scope.value = true;放在Ajax外面是可以一次就弹出框的。
把$scope.valuer换成$rootScope也不行。
求解。
解决方案
$scope.RealTimeUpdate = function (obj) {
var thisRurl = '/MFreeXFapi/student/RealTimeUpdate';
var rturl = $(obj).attr('rthref');
$http({
method: 'POST',
url: thisRurl,
transformRequest: $.param,
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' },
data: 'ProductId=' + $rootScope.paycourseId + '&studentid=' + $scope.userData.rowId + '&orderid=' + $scope.payood,
}).success(function (data) {
if (data != true) {
$scope.orderError = true;
console.log($scope.orderError)
} else {
window.location.href = rturl
}
})
};
jq的ajax不会触发ng的检查机制 需要使用$http代替 或者改变model后使用$scope.$apply
http://stackoverflow.com/ques...
这篇关于angular.js - AngularJS ng-show 值已经是true了,但是还显示ng-hide的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文