<tr ng-repeat="rows in DATA1">
<INEEDSOMETAG ng-repeat="(key,part) in rows" ng-switch on="key">
<td ng-switch-when="ABCD" ng-repeat="piece in part">{{piece}}</td>
<td ng-switch-default>{{part}}</td>
</INEEDSOMETAG>
</tr>
这个信息是从一个json对象中解析出来的,其中一个“部分”是另一个对象,我需要迭代它,但是将它们显示为另一个'td'。
显然,一种方法是提供某种动态标签(如果可能的话)('INEEDSOMETAG')
以下json:
{obj1: {
ABCD:{
x:'x',
y:'y'
},
a:'a',
b:'b',
c:'c',
d:'d',
},
obj2:{
ABCD:{
z:'x',
f:'y'
},
a:'a',
b:'b',
c:'c',
d:'d',
},
}
添加了一个jsfiddle:http://jsfiddle.net/kDF5L/1/
答案 0 :(得分:0)
开始时有几个问题:
<span>
代码未正确平衡;它们都以</td>
结束。$scope.js
无效Javascript。对象必须包含键/值对,因此我认为您应该使用对象的数组。如果你真的想这样做(并且正如评论员所说的那样,这看起来不像是最有效的方法来完成你想做的事情) - 我做了一个JSFiddle演示了如何让代码开始做某事。
如果您仍然对制作像<i-need-some-tag>
这样的自定义元素感兴趣(我假设您现在不需要,虽然知道如何做到这一点对于框架来说非常重要),需要写一个custom directive。如何 超出了这个问题的范围,但Stack Overflow,Google和AngularJS文档上有很多关于如何执行此操作的资源。你会从这样的事情开始:
.directive("INeedSomeTag", function() {
return {
restrict: 'E', // used like <i-need-some-tag>
replace: true,
template: `<td>...</td>`
}
});
和like charlietfl said,您可以将<td>
元素传入指令定义对象的template
属性。