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