Angularjs double ng-repeat 数据从后往前显示,为什么?
Angularjs double ng-repeat data shown from back to front, Why?
我的代码中有两个困惑点,
第一个,
这是我的 HTML:
<table class="table table-hover" my-element="docu">
我用的是double ng-repeat,但是显示的数据是从后往前的。如何解决这个问题?
Angularjs 文件:
这是数据:
$scope.people = [
{'name':1,'des':'nice','age':12},
{'name':2,'des':'good','age':13}
];
..........
.directive('myElement', function () {
return {
scope: {
items: '=myElement'
},
restrict: 'EAC',
template: '<tr ng-repeat="item in items" ><td ng-repeat="p in item">{{p}}</td></tr>'
};
});
结果:
12 nice 1
13 good 2
结果应该是这样的:
1 nice 12
3 good 13
第二个,
我用 ng-if 来检查数据的长度,如果没有数据,table 的正文会显示这个 "Upload the file"。但是这句话总是出现在table头上。我不知道为什么。如何解决这个问题?
HTML:
<tbody my-element="people">
<span ng-if="people.length == 0">Upload the file</span>
</tbody>
我的结果(如果没有数据):
Upload the file
Name Des Age
结果应该是这样的:
Name Des Age
Upload the file
link是我的代码,请查收:
既然你有一个对象数组,那就意味着item
是一个对象而不是数组,所以我真的不明白你为什么期望按照你想要的顺序得到它。
但是,您可以像这样只做 1 ng-repeat
:
template: '<tr ng-repeat="item in items" ><td>{{item.name}}</td><td>{{item.des}}</td><td>{{item.age}}</td></tr>'
第一个回答
我猜第二个 ng-repeat 的语法应该是 (key, value) in obj.
基本上,当 angular 对对象的键执行 ng-repeat 时,它会按字母顺序对键进行排序,这就是您的输出不是预期的原因。
如果你看到了。
你的输出:
姓名年龄
12 不错 1
13 好 2
有道理吗
要克服这个问题,您可以迭代数组并使用 object.propertyName.
我没听懂你的第二个问题。
我怀疑存在 html 排序问题。再解释一下第二个问题。
我的代码中有两个困惑点,
第一个, 这是我的 HTML:
<table class="table table-hover" my-element="docu">
我用的是double ng-repeat,但是显示的数据是从后往前的。如何解决这个问题?
Angularjs 文件:
这是数据:
$scope.people = [
{'name':1,'des':'nice','age':12},
{'name':2,'des':'good','age':13}
];
..........
.directive('myElement', function () {
return {
scope: {
items: '=myElement'
},
restrict: 'EAC',
template: '<tr ng-repeat="item in items" ><td ng-repeat="p in item">{{p}}</td></tr>'
};
});
结果:
12 nice 1
13 good 2
结果应该是这样的:
1 nice 12
3 good 13
第二个,
我用 ng-if 来检查数据的长度,如果没有数据,table 的正文会显示这个 "Upload the file"。但是这句话总是出现在table头上。我不知道为什么。如何解决这个问题?
HTML:
<tbody my-element="people">
<span ng-if="people.length == 0">Upload the file</span>
</tbody>
我的结果(如果没有数据):
Upload the file
Name Des Age
结果应该是这样的:
Name Des Age
Upload the file
link是我的代码,请查收:
既然你有一个对象数组,那就意味着item
是一个对象而不是数组,所以我真的不明白你为什么期望按照你想要的顺序得到它。
但是,您可以像这样只做 1 ng-repeat
:
template: '<tr ng-repeat="item in items" ><td>{{item.name}}</td><td>{{item.des}}</td><td>{{item.age}}</td></tr>'
第一个回答
我猜第二个 ng-repeat 的语法应该是 (key, value) in obj.
基本上,当 angular 对对象的键执行 ng-repeat 时,它会按字母顺序对键进行排序,这就是您的输出不是预期的原因。
如果你看到了。 你的输出:
姓名年龄
12 不错 1
13 好 2
有道理吗
要克服这个问题,您可以迭代数组并使用 object.propertyName.
我没听懂你的第二个问题。 我怀疑存在 html 排序问题。再解释一下第二个问题。