Javascript 如何在angularJS中运行ajax以将来自controller的数据填充到模板中?
我正在做一个angularJS项目。我已经编写了ajax,它可以从我的RESTful服务中连续获取数据。我的ajax代码在我的控制器中。现在我想使用接收到的数据并将其显示在模板中。我在我的模板中放置了一个标签,id为“demo”,在控制器中的ajax中,我使用的是Javascript 如何在angularJS中运行ajax以将来自controller的数据填充到模板中?,javascript,angularjs,ajax,Javascript,Angularjs,Ajax,我正在做一个angularJS项目。我已经编写了ajax,它可以从我的RESTful服务中连续获取数据。我的ajax代码在我的控制器中。现在我想使用接收到的数据并将其显示在模板中。我在我的模板中放置了一个标签,id为“demo”,在控制器中的ajax中,我使用的是document.getElementById(“demo”).innerHTML=“段落更改!” 每3秒填写一次新数据。由于某些原因,即使控制台日志显示数据,我的模板中也没有更新数据 注意:这是一个粗略的代码,我目前不关心安全性/性能
document.getElementById(“demo”).innerHTML=“段落更改!”代码>
每3秒填写一次新数据。由于某些原因,即使控制台日志显示数据,我的模板中也没有更新数据
注意:这是一个粗略的代码,我目前不关心安全性/性能/实践
有人知道为什么吗
我的控制器:
.controller('geolocationCtrl', function($scope, $state, $stateParams, $ionicPopup, $timeout) {
//popup alert starts here
$scope.showAlert = function(status,message) {
var alertPopup = $ionicPopup.alert({
title: status,
template: message,
});
};
//popup alert ends here
setInterval(function update_map(){
jQuery.ajax({
url: "http://example.com/provider/rest.php/geolocation",
type: "GET",
contentType: 'application/json; charset=utf-8',
success: function(resultData) {
console.log(resultData.latitude);
console.log(resultData.longitude);
document.getElementById("demo").innerHTML = resultData.latitude;
},
error : function(jqXHR, textStatus, errorThrown) {
},
});
}, 3000);
$scope.state = $state.current
$scope.params = $stateParams;
})
我的模板:
<p id="demo">
</p>
使用Angular时不应使用jquery。使用$http本身,这将允许您更改范围变量中的数据,从而动态更改模板中的视图
所以不是
jQuery.ajax({
url: "http://example.com/provider/rest.php/geolocation",
type: "GET",
contentType: 'application/json; charset=utf-8',
success: function(resultData) {
console.log(resultData.latitude);
console.log(resultData.longitude);
document.getElementById("demo").innerHTML = resultData.latitude;
},
error : function(jqXHR, textStatus, errorThrown) {
},
});
这样做
$http({
url: "http://example.com/provider/rest.php/geolocation",
method: "get",
contentType: 'application/json; charset=utf-8'
}).success:(function(resultData) {
$scope.something = resultData
}).error(function(jqXHR, textStatus, errorThrown) {
});
你错过了angularJS的概念。。AngularJS能够进行双向数据绑定。因此,您只需要在控制器中设置模型并将其绑定到视图中。每次您进行AJAX调用,并在controller中更新模型时,您的视图也会更新。@choz是对的:使用angular$http
从服务器获取数据,而不是jQuery。AJAX
…您能在这里给我写一些演示代码吗?我好像不能动脑it@Daniel只是一个建议,你可能想从基础开始。谢谢,这很有意义。但是如何在模板中实际显示数据呢。我是否使用{params.something}或如何使用?您可以使用ng bind='someVariableName.someParamName',例如,在控制器中应该有$scope.person对象的地方。您也可以使用{{person.Name},但不推荐使用。这是因为有时在页面加载时,在angular计算代码之前,您可能会看到代码{{person.Name}}。您似乎对这方面很了解,请看我这里的问题: