我有一个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")));
`
答案 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()。