搜尋

首頁  >  問答  >  主體

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

淡淡烟草味淡淡烟草味2782 天前652

全部回覆(1)我來回復

  • 某草草

    某草草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的ajax不會觸發ng的檢查機制 需要使用$http代替 或改變model後使用$scope.$apply

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

    回覆
    0
  • 取消回覆