Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularJS中运行ajax以将来自controller的数据填充到模板中?_Javascript_Angularjs_Ajax - Fatal编程技术网

Javascript 如何在angularJS中运行ajax以将来自controller的数据填充到模板中?

Javascript 如何在angularJS中运行ajax以将来自controller的数据填充到模板中?,javascript,angularjs,ajax,Javascript,Angularjs,Ajax,我正在做一个angularJS项目。我已经编写了ajax,它可以从我的RESTful服务中连续获取数据。我的ajax代码在我的控制器中。现在我想使用接收到的数据并将其显示在模板中。我在我的模板中放置了一个标签,id为“demo”,在控制器中的ajax中,我使用的是document.getElementById(“demo”).innerHTML=“段落更改!” 每3秒填写一次新数据。由于某些原因,即使控制台日志显示数据,我的模板中也没有更新数据 注意:这是一个粗略的代码,我目前不关心安全性/性能

我正在做一个angularJS项目。我已经编写了ajax,它可以从我的RESTful服务中连续获取数据。我的ajax代码在我的控制器中。现在我想使用接收到的数据并将其显示在模板中。我在我的模板中放置了一个标签,id为“demo”,在控制器中的ajax中,我使用的是
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}}。您似乎对这方面很了解,请看我这里的问题: