2
     <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/

4

1 回答 1

0

几个问题开始:

  1. 您的<span>标签未正确平衡;它们都以</td>.
  2. $scope.js不是有效的 Javascript。一个对象必须包含键/值对,所以我认为你应该使用一个对象数组

如果您真的想这样做(并且正如评论员所建议的那样,这看起来不像是完成您想要做的任何事情的最 Angular 方法) - 我制作了一个JSFiddle来演示如何制作代码开始做某事。

如果您仍然对制作像这样的自定义元素感兴趣<i-need-some-tag>(我假设您此时不需要这样做,尽管知道如何做到这一点对于框架来说是非常基础的),您需要编写一个自定义指令。如何做到一点超出了这个问题的范围,但是 Stack Overflow、Google 和 AngularJS 文档上有很多关于如何做到这一点的资源。你会从这样的事情开始:

.directive("INeedSomeTag", function() {
    return {
        restrict: 'E', // used like <i-need-some-tag>
        replace: true,
        template: `<td>...</td>` 
    }
});

就像 charlietfl 说的那样,您也许可以将<td>元素传递到指令定义对象的template属性中。

于 2015-02-11T17:07:10.210 回答