我正在尝试在 Angular JS 中使用 Javascript 中的循环打印数组
I'm trying to print an array using a loop in Javascript in Angular JS
我正在尝试从对象中的 属性 打印出每个数组项:
{
position:"Finance Office Assistant",
employer:"Washtenaw County Finance Department",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"Item 1",
"Item 2",
"Item 3"
]
},
这个对象在一个数组中,还有其他几个对象。我正在尝试创建一个循环遍历所有对象的函数,并打印出无序列表中的 duties 数组项,其中包含列表项和数组项的确切数量。
这是我要编写的函数来完成任务
$scope.dutyList = function() {
var arrayLength = $scope.duties.length;
while (arrayLength > 0) {
console.log("dutyList run")
document.write("<li> {{ dutyList }} </li>");
--arrayLength;
}
}
一般来说,使用 Angular 这样的框架时,您不希望直接写入文档。相反,您应该使用内置的模板系统和指令来呈现您的页面。
我在这里对最终目标做了一些假设,但是,假设对象数组可以被控制器访问并附加到范围,你可以使用类似的东西打印每个位置的无序列表以下。
angular.module('myApp', []).controller('myCtrl', function($scope){
$scope.foo = [{
position:"Finance Office Assistant",
employer:"Washtenaw County Finance Department",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"Item 1",
"Item 2",
"Item 3"
]
}, {
position:"Another Position",
employer:"Another Employer",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"2nd Object, Item 1",
"2nd Object, Item 2",
"2nd Object, Item 3"
]
}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='myApp' ng-controller='myCtrl'>
<div ng-repeat='bar in foo'>
<h1>{{ bar.position }}</h1>
<ul>
<li ng-repeat='duty in bar.duties'>
{{ duty }}
</li>
</ul>
</div>
</div>
您不需要函数来处理这样显示的数据。 Angular 的 ngRepeat 就是为此而生的。要访问数据集的第二层,您可以在无序列表中嵌套两个重复项。第一个(在 div 中)重复数据的第一层,并公开第二层,在 <li>
标记中重复:
<ul>
<div ng-repeat="d in data">
<li ng-repeat="duty in d.duties">{{duty}}</li>
</div>
</ul>
我正在尝试从对象中的 属性 打印出每个数组项:
{
position:"Finance Office Assistant",
employer:"Washtenaw County Finance Department",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"Item 1",
"Item 2",
"Item 3"
]
},
这个对象在一个数组中,还有其他几个对象。我正在尝试创建一个循环遍历所有对象的函数,并打印出无序列表中的 duties 数组项,其中包含列表项和数组项的确切数量。
这是我要编写的函数来完成任务
$scope.dutyList = function() {
var arrayLength = $scope.duties.length;
while (arrayLength > 0) {
console.log("dutyList run")
document.write("<li> {{ dutyList }} </li>");
--arrayLength;
}
}
一般来说,使用 Angular 这样的框架时,您不希望直接写入文档。相反,您应该使用内置的模板系统和指令来呈现您的页面。
我在这里对最终目标做了一些假设,但是,假设对象数组可以被控制器访问并附加到范围,你可以使用类似的东西打印每个位置的无序列表以下。
angular.module('myApp', []).controller('myCtrl', function($scope){
$scope.foo = [{
position:"Finance Office Assistant",
employer:"Washtenaw County Finance Department",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"Item 1",
"Item 2",
"Item 3"
]
}, {
position:"Another Position",
employer:"Another Employer",
location:"Ann Arbor, MI",
start_date:"2012",
current: false,
end_date:"2012",
duties: [
"2nd Object, Item 1",
"2nd Object, Item 2",
"2nd Object, Item 3"
]
}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='myApp' ng-controller='myCtrl'>
<div ng-repeat='bar in foo'>
<h1>{{ bar.position }}</h1>
<ul>
<li ng-repeat='duty in bar.duties'>
{{ duty }}
</li>
</ul>
</div>
</div>
您不需要函数来处理这样显示的数据。 Angular 的 ngRepeat 就是为此而生的。要访问数据集的第二层,您可以在无序列表中嵌套两个重复项。第一个(在 div 中)重复数据的第一层,并公开第二层,在 <li>
标记中重复:
<ul>
<div ng-repeat="d in data">
<li ng-repeat="duty in d.duties">{{duty}}</li>
</div>
</ul>