【问题标题】:Angular2 template: how to wrap contents of ngFor with DIVAngular2模板:如何用DIV包装ngFor的内容
【发布时间】:2017-01-11 11:53:10
【问题描述】:

我不确定列数和未定义的字段长度。要显示它们,有以下代码:

<div class="col-md-6" *ngFor="let d of fields">
    <div class="form-group">
        <label>{{ d.displayName }}</label>
        <span>{{ viewRecord[d.fieldName]}}</span>
    </div>
</div

结果是:

<div class="col-md-6">
    <div class="form-group">
        <label>Title 1</label>
        <span>Text 1....</span>
    </div>
</div
<div class="col-md-6">
    <div class="form-group">
        <label>Title 2</label>
        <span>Text 2....</span>
    </div>
</div

有没有可能像这样将这两个放入一个容器中:

<div class="row">
   <div class="col-md-6">
        <div class="form-group">
            <label>Title 1</label>
            <span>Text 1....</span>
        </div>
    </div
    <div class="col-md-6">
        <div class="form-group">
            <label>Title 2</label>
            <span>Text 2....</span>
        </div>
    </div
</div>

请注意,我不知道字段数,所以我必须从字段总数中取模数 2 才能将一对字段包装到一个容器中。很明显,包装器将在循环之外。我被困住了:)

请注意,我正在寻找模板驱动的答案。如果没有,我可以应付。我可以自己编写的任何 JavaScript ;)

【问题讨论】:

    标签: templates angular


    【解决方案1】:

    您可以使用*ngForoddeven 项目的内置功能。像往常一样迭代项目,但仅在迭代 even 项目时显示结果。并使用index 直接从项目中访问项目。

    <div class="row">
        <div *ngFor="let d of fields; let index=index; let odd=odd; let even=even;">
            <div *ngIf="even">
                <div class="form-group" class="col-md-6">
                    <label>{{ fields[index].displayName }}</label>
                    <span>{{ viewRecord[fields[index].fieldName]}}</span>
                </div>
                <div class="form-group" class="col-md-6">
                    <label>{{ fields[index+1].displayName }}</label>
                    <span>{{ viewRecord[fields[index+1].fieldName]}}</span>
                </div>
            </div>
        </div>
    </div>
    

    这绝对不是最好的解决方案(因为我定义了两次相同的模板),但应该可以。

    【讨论】:

    • 这可以工作 :) 我会尝试启动它并回信
    • 是的,这不是最好的,但是,如果我添加到第二组 *ngIf="fields[index+1]",那就足够了;)
    • 好! :)..但是,我会考虑更优雅的方式。
    • 好的,再次感谢。现在,当左侧高于右侧时,这些字段不会级联。
    • 这是一个 CSS 问题,不是吗?尝试调查生成的 DOM,您应该能够查看类的顺序是否错误,然后是预期的结果。也许这个
      并不完美,form-group 应该嵌套到 col-md-6 div 中?
    猜你喜欢
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多