当前位置: 首页 > 面试题库 >

用ng-repeat挑战重复tr

周睿范
2023-03-14
问题内容

我正在努力解决一个特殊的用例。我在底部提供了一个jsfiddle代码段。

1. HTML表

我的HTML是一张桌子。ng-repeat指令必须应用于html元素。在我的用例中,这不能完成,因为ng-repeat的实例由double
tr元素组成:

<!-- ng-repeat the following block n times -->
<tr>
 <td>text</td>
</tr>
<tr>
 <td tooltip="comment that is bound to the first tr">hover me</td>
</tr>

AngularJS不提供语法ng-
repeat注​​释(与KnockoutJS不同)。我在SO上发现了类似的问题。但是,用例包括在元素内附加HTML。我的工作包括在ng重复的tr后面放置一个新的tr,但这只是无效。此外,还有一个新的东西要考虑。

2.工具提示指令

第二个tr嵌入了一个工具提示指令,该指令来自angular-ui-bootstrap。因此,纯jQuery方法可能不可行。

3.我的目标

我为您提供了一个根本不使用ng-repeat的代码段。我的目标是将ng-repeat应用于集合的每个元素。

http://jsfiddle.net/RkCMr/1/


问题答案:

您可以使用tbody标签将多个tr分组在一起,并使用ngRepeat对其进行循环。

http://jsfiddle.net/RkCMr/4/

<div ng-app="challenge">
    <h3>how can I refactor it out using ng-repeat?</h3>
    <table ng-controller="ctrl">
        <thead></thead>         
        <tbody ng-repeat="item in collection">
            <tr ng-click="showing=!showing">
                <td>click</td>
                <td>{{item}}</td>
            </tr>
            <tr ng-show="showing">
                <td>--></td>
                <td>comment {{item}}
                    <a tooltip="a tooltip comment {{item}}">
                        <i class="icon-ok-sign"></i>
                    </a>
                </td>                
            </tr>
        </tbody> 
    </table>    
</div>

顺便说一句,看来您的代码仍处于Jquery的处理方式中。即使您已将它们放入指令中。如上面的示例所示,完全不需要指令,并且不使用JQuery。



 类似资料:
  • 问题内容: 我有以下几点: 而这在我的HTML: 我该如何匹配类型并在每次出现时仅回显一次呢? 问题答案: 要删除重复项,可以使用AngularUI 的 唯一 过滤器(源代码在这里:AngularUI唯一过滤器),然后直接在ng-options(或ng- repeat)中使用它。 在这里查看更多: 独特的东西 json结构中也存在语法错误。 工作守则 HTML 脚本

  • 问题内容: 我有一本字典存放在 现在,我不想包含重复的,我应该使用什么? 问题答案: 只需创建一个可以通过键获取唯一值的过滤器即可。这样的事情应该做(我根本没有测试过,所以我把这件事留给你,这只是给你一个主意): 注意:Array.indexOf()在IE8中不起作用 ,因此,如果支持IE8,则需要在indexOf()中存根,或者需要使用稍微不同的方法。 其他想法:如果已经在引用那些库,那么最好创

  • 问题内容: 我正在开发一个页面,我需要在其中显示一些框(使用),其中包含频道信息以及显示位置(城市)。 我面临的问题是当我重复第二遍时: 这应该获得第一个ng-repeat的$ index值,并使用显示频道的位置创建一个新数组。它确实做到了。但是,当我使用此数组应用第二个ng- repeat时,它无法正常工作。 说我的html看起来像这样(PS:我需要使用索引值而不是因为我将这些框放到列中) JS

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7

  • 问题内容: 我试图了解over 的意义。角度文档提供了以下示例 但是,使用, 有人可以解释。的意义吗?谢谢。 问题答案: 这两个指令的含义相似:它们重复HTML标记。所不同的只是,在您的帮助下,您可以重复几个标签,从标签开始于,再到完成于。 例如,您有下一个代码: 因此,现在我们可以为这些代码添加2个指令。 与: 与和: 因此,现在您可以看到,在第一种情况下,仅使用指令重复,但是在第二种情况下,您

  • 我有以下对象。 现在我需要使用在标签中显示这个对象键,并在文本区域中显示值。本质上我想在对象属性上使用,可以吗? 我必须使用类似的东西: