$ http.success()或.error()在完成时不触发ng-show

时间:2014-10-01 18:52:04

标签: javascript jquery angularjs

将表单发布到Web服务后,下面的有角度的http post结果应该触发两个HTML元素之一来显示帖子的成功或失败。虽然我得到了200 ok的响应以及" Success"作为返回的字符串,成功的HTML元素不会显示为好像它没有成功。任何人都能指出我在这里失踪的东西吗?我很感激。

Jquery的:

$scope.demoInquiry = function(){
        $http({
            method : 'POST',
            url : 'http://localhost:XXXXX/XXX/XXXXXXX/XXXXXXXXXX',
            data : $.param({
                firstName : $scope.firstName,
                lastName : $scope.lastName,
                companyName : $scope.companyName,
                email : $scope.email,
                phone : $scope.phone,
                deviceHwid : "Website Inquiry"
            }),
            headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).success(function(data) {
            console.log(data);
            $scope.postSuccess = true;
        }).error(function(data){
            console.log(data);
            $scope.postError = true;
        });
    };

HTML:

<div class="row" ng-show="postSuccess">
            <div class="col-lg-9 col-lg-offset-3 col-xs-12 hidden">
                <span id="demoSuccessResult" style="color: blue;">Thank you for registering!</span>
            </div>
        </div>
        <div class="row" ng-show="postError">
            <div class="col-lg-9 col-lg-offset-3 col-xs-12 ">
                <span id="demoErrorResult" style="color: red;">There was an error with your registration. Try again.</span>
            </div>
        </div>

2 个答案:

答案 0 :(得分:0)

更改范围后添加$scope.$apply()。这可能会有所帮助

答案 1 :(得分:0)

嵌套div元素上有隐藏属性。这可能是你的问题。