【发布时间】:2017-07-05 01:40:00
【问题描述】:
我正在尝试读取 Angular js 中的文件,如果成功读取数据,它将将内容分配给对象的变量,否则会将“NA”分配给同一变量。
function customer($scope, $http) {
var i;
$scope.courses = [{
name: "CSE",
capacity: "CSE.txt"
}, {
name: "IT",
capacity: "IT.txt"
}, {
name: "ECE",
capacity: "ECE.txt"
}];
for (i = 0; i < 3; i++)
$http.get($scope.courses[i].capacity).then(function (success) {
$scope.courses[i].capacity = success.data;
}, function (error) {
$scope.courses[i].capacity = "NA";
});
}
var myApp = angular.module("myApp", []);
myApp.controller("customerobj", customer);
我尝试以普通表格格式访问以下部分
<td>ng-repeat="course in courses">{{course.capacity}}</td>
但每次我这样做时都会抛出错误:“无法设置未定义的属性‘容量’”并显示文件名。即使找不到文件,也应该将值更新为“NA”。但它没有发生。请帮帮我
【问题讨论】:
-
尝试将您的 $http.get 包装在函数中。似乎是 javascript 中的闭包问题
-
@DarshakGajjar 因为错误是“无法设置未定义的属性'容量'”,这表明
$scope.courses[i]是undefined。而且因为这是循环的一部分,所以在我看来它是我链接的那个的副本 -
$scope.courses[i] 已经在数组定义中定义了吗?
-
@SiddharthaChoudhury 你能检查浏览器控制台吗?错误在哪一行抛出?
-
$scope.courses[i].capacity = "NA"; - 这一行
标签: javascript jquery angularjs arrays object