Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 简单角度ng重复应用程序未按预期工作_Javascript_Html_Angularjs_Ajax - Fatal编程技术网

Javascript 简单角度ng重复应用程序未按预期工作

Javascript 简单角度ng重复应用程序未按预期工作,javascript,html,angularjs,ajax,Javascript,Html,Angularjs,Ajax,我敢肯定这是件愚蠢的事,我知道这是一个相当愚蠢的问题。 我有一个非常简单的angular应用程序和一些HTML 当在chrome上调试时,我可以看到我的ajax调用得到了响应,并且它肯定正在填充我的$scope.courses。但出于某种原因,它不想起作用。尝试查找拼写问题但未成功 HTML: 答复: 您是否尝试将$scope.courses=response在: $scope.$apply(function(){ $scope.courses = response; }) Angula

我敢肯定这是件愚蠢的事,我知道这是一个相当愚蠢的问题。 我有一个非常简单的angular应用程序和一些HTML

当在chrome上调试时,我可以看到我的ajax调用得到了响应,并且它肯定正在填充我的$scope.courses。但出于某种原因,它不想起作用。尝试查找拼写问题但未成功

HTML:

答复:


您是否尝试将
$scope.courses=response在:

$scope.$apply(function(){
   $scope.courses = response;
})

Angular需要知道何时运行范围摘要。

您是否尝试过将
$scope.courses=response在:

$scope.$apply(function(){
   $scope.courses = response;
})

Angular需要知道何时运行scope digest。

Angular不知道ajax服务中发生了什么,因此不知道更新UI。请尝试改用$http或$resource


编辑

只是为了澄清相对于应答,$http在angular digest循环中运行,因此当服务返回时,UI将自动更新。如果你离开Angular,你必须明确地通知Angular,就像Michal做的那样


但是在Angular之外,您可能会遇到意想不到的问题,因此除非有令人信服的理由这样做,否则您可能不应该这样做。

Angular不知道ajax服务中发生了什么,因此它不知道更新UI。请尝试改用$http或$resource


编辑

只是为了澄清相对于应答,$http在angular digest循环中运行,因此当服务返回时,UI将自动更新。如果你离开Angular,你必须明确地通知Angular,就像Michal做的那样


但在Angular之外,您可能会遇到意想不到的问题,所以除非有令人信服的理由这样做,否则您可能不应该这样做。

在Angular中使用$http或$resource的更好方法$http在内部调用ajax调用来获取数据,当我们调用$http.get(url)方法时,$http服务会自动添加某些http头,例如X-request-With:XMLHttpRequest

html

在您的数据中,必须有一个名称字段


在angular中使用$http或$resource的更好方法$http在内部调用ajax调用来获取数据,当我们调用$http.get(url)方法时,$http服务会自动添加某些http头,例如X-request-With:XMLHttpRequest

html

在您的数据中,必须有一个名称字段



我们能再多看一点吗?课程名称的定义在哪里?我们能再看一点吗?course.Name的定义在哪里?最好是通过“角度方式”与服务进行通信。当然,这样更好、更简单。我只是发布问题的解决方案。我同意艾米的观点。我以前不得不使用这个解决方案。然而,这是一种简单的方式,应该是开箱即用的。最好只是用“角度的方式”与服务沟通。当然,更好、更简单。我只是发布问题的解决方案。我同意艾米的观点。我以前不得不使用这个解决方案。然而,这是一个简单的方法,应该是开箱即用的。我将$http注入到我的应用程序中。不知道那到底是什么。然后,我将当前调用“$.ajax”替换为“$.http”(“。请你向我解释一下这个概念,也许还有一些额外的文档可以链接?你注意到我回答中的教程链接了吗?谢谢。我更好奇的是$http和$resource或$ajax或其他我偶然发现的东西之间的区别。我觉得我错过了一些真正重要的东西。”e、 我一直认为这只是不同的语法或其他东西。我真正不明白的是$scope.courses为什么确实收到了数据。在按照屏幕截图遍历代码后,您可以清楚地看到它填充了。我认为$resource应该更高级,更易于使用,但老实说,我通常只使用$http.$.ajax只是在angular之外使用原始jQuery。我将$http注入到我的应用程序中。不确定这到底是做什么的。然后我将当前调用“$.ajax”替换为“$.http”(“。请你向我解释一下这个概念,也许还有一些额外的文档可以链接?你注意到我回答中的教程链接了吗?谢谢。我更好奇的是$http和$resource或$ajax或其他我偶然发现的东西之间的区别。我觉得我错过了一些真正重要的东西。”e、 我一直认为这只是不同的语法或其他东西。我真正不明白的是$scope.courses为什么确实收到了数据。在按照屏幕截图遍历代码后,您可以清楚地看到它填充了。我认为$resource应该更高级,更易于使用,但老实说,我通常只使用$hajax只是在angular之外使用原始jQuery。
$scope.$apply(function(){
   $scope.courses = response;
})
<body ng-app="registrationApp">
  <div ng-controller="registrationController">
    <ul ng-repeat="course in courses">
      <li>{{course.Name}}</li>
    </ul>
  </div>
</body>
var app = angular.module("registrationApp", []);

app.controller("registrationController", function($scope, $http) {
  $http.get('http://localhost/APIWrapper/api/course').
    success(function(data, status, headers, config) {
      $scope.courses = data;
    }).
    error(function(data, status, headers, config) {
      // log error
    });
});