search

Home  >  Q&A  >  body text

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也不行。
求解。

淡淡烟草味淡淡烟草味2745 days ago626

reply all(1)I'll reply

  • 某草草

    某草草2017-05-15 17:06:23

    $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’s ajax will not trigger ng’s checking mechanism. You need to use $http instead or use $scope.$apply after changing the model

    http://stackoverflow.com/ques...

    reply
    0
  • Cancelreply