数据绑定仅适用于第二次单击事件

时间:2016-04-05 07:00:08

标签: angularjs

我有一个click事件来调用AngularJS函数,该函数从SQL检索数据并返回到ajax调用。 我的问题是检索到的数据仅在第二次点击事件时与ng-repeat绑定。这是我的代码,

`

(function (app) {
    app.controller("OnvioController", function ($scope,$http, OnvioService) {
        $scope.retData = [];
        $scope.getResult = function () {

            var serviceURL =window.location.origin+ '/Datafetching/dataFetch';

            $.ajax({
                type: "POST",
                url: serviceURL,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(data, status) {
                    $scope.retData = data;
                },
                error: function (status) {

                }
            });
        }

    });
}(angular.module("OnvioModule")));

`

3 个答案:

答案 0 :(得分:3)

请勿在angularJS中使用$.ajax

您可以$http.get

执行此操作

我现在还没有尝试过。但它应该适合你的情况。

(function (app) {
    app.controller("OnvioController", function ($scope,$http, OnvioService) {
        $scope.retData = [];
        $scope.getResult = function () {

            var serviceURL =window.location.origin+ '/Datafetching/dataFetch';

            $http.get(serviceURL).success( function(response) {
                $scope.retData = response; 
            });
        }

    });
}(angular.module("OnvioModule")));

请参阅this文档了解更多详情

答案 1 :(得分:1)

使用$ http.post而不是$ .ajax。

如果您仍想使用$ .ajax,请在您的成功函数中添加$ scope。$ apply()。 这将触发角度循环以搜索其上下文之外的变化。这是因为$ .ajax在有角度的东西之外执行。

答案 2 :(得分:-1)

在成功函数中添加$ scope。$ apply()。