AngularJS ng-show 值已经是true了,但是还显示ng-hide

用ng-show来控制一个弹出框

在一个button的click事件中更改value的值(用到了jQuery Ajax)

通过console.log看到value的值确实已经变成true了,但是点击按钮,没有弹出订单异常的框,第二次点击就能弹出来了
为什么需要执行两次才能弹出?
把$scope.value = true;放在Ajax外面是可以一次就弹出框的。
把$scope.valuer换成$rootScope也不行。
求解。

阅读 5.2k
1 个回答
$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...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进