我的代码中有两个混淆点,
第一个, 这是我的HTML:
<table class="table table-hover" my-element="docu">
我使用了双重重复,但数据显示在前面。如何解决这个问题?
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检查数据的长度,如果没有数据,表的主体显示为“上传文件”。但这句话总是出现在桌头上。我不知道为什么。如何解决这个问题?
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
链接是我的代码,请检查一下:
答案 0 :(得分:0)
因为你有一个对象数组,这意味着item
是一个对象,而不是一个数组,所以我真的不明白为什么你希望按照你想要的顺序得到它。
但是,你只需要这样做ng-repeat
:
template: '<tr ng-repeat="item in items" ><td>{{item.name}}</td><td>{{item.des}}</td><td>{{item.age}}</td></tr>'
答案 1 :(得分:0)
第一个答案
我想第二次ng-repeat的语法应该是obj 中的(键,值)。
基本上,当对象键上的角度执行ng-repeat时,它会按字母顺序对键进行排序,这就是不期望输出的原因。
所以,如果你看到了。 你的输出:
年龄名称
12 nice 1
13 good 2
这是否有意义。
要解决此问题,您可以迭代数组并使用object.propertyName。
我没有得到你的第二个问题。 我怀疑有HTML订购问题。再解释第二个问题。