首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何执行不复制ng-repeat元素的ng-repeat

如何执行不复制ng-repeat元素的ng-repeat
EN

Stack Overflow用户
提问于 2013-04-12 21:44:53
回答 2查看 806关注 0票数 3

我需要使用ng-repeat来生成几个元素,但是这些元素不能都包装在一个div中(这是为了框布局的目的,其中框布局只适用于直接的子元素)。例如,我需要以下结果:

代码语言:javascript
复制
<div class='box-layout'>
  <div class='item-header>Head 1</div>
  <div class='item-body>Body 1</div>

  <div class='item-header>Head 2</div>
  <div class='item-body>Body 2</div>
</div>

在重复的部分上没有包装元素。此结构是使用flex-box样式布局所必需的。我怎样才能用AngularJS做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-13 22:50:33

正如@Anders Bornholm所说,这是不可能的(仅供参考,in knockout.js this is easy)。

尽管它很难看,但你可以通过一个指令来实现,例如:

  1. AngularJS ng-repeat with no html element
  2. ng-repeat without HTML element (this time really without any)

JS:

代码语言:javascript
复制
directive('htmlAppend', function() {
    return {
        restrict: 'A',
            link: function(scope, element, attrs) {
                element.append(attrs.htmlRepeat);
        }
    };
})

HTML:

代码语言:javascript
复制
<div class='box-layout'>
  <div class='item-header' ng-repeat="s in sections" html-append="<div class='item-body'>Body</div>">Head</div>
</div>
票数 4
EN

Stack Overflow用户

发布于 2013-04-13 22:27:50

简而言之:做不到。对我个人来说,Angular最大的缺点之一。

如果指令模板允许多个根元素,那么您可以使用一个指令来实现,但这也不起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15972986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档