javascript - ionic 收集重复不起作用

标签 javascript angularjs ionic-framework ionic2

我有一组对象,我想在我的模板中循环并输出为卡片。我目前使用 *ngfor 使其正常工作,现在我想将其更改为使用 collection repeat。

这是我的代码:

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

import { TowersModel } from '../../app/models/towers-model';

@Component({
  selector: 'page-towers',
  templateUrl: 'towers.html'
})
export class TowersPage {

      towers: any;

    constructor(public navCtrl: NavController){ 

        this.towers = [
            {
                "name" : "Tower 1",
                "image" : "http://placehold.it/350x150"
            },
            {
                "name" : "Tower 2",
                "image" : "http://placehold.it/350x150"
            },
            {
                "name" : "Tower 3",
                "image" : "http://placehold.it/350x150"
            }
        ];
    }
}

模板:

<ion-header>
  <ion-navbar>
    <ion-title>
      Towers
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
    <ion-content>

        <ion-card *ngFor="let tower of towers">
            <img src="{{ tower.image }}" alt="{{tower.name}}">

            <ion-item>
                <h2>{{tower.name}}</h2>
                <p>11 N. Way St, Madison, WI 53703</p>
            </ion-item>

            <ion-item>
                <span item-left>18 min</span>
                <span item-left>(2.6 mi)</span>
                <button ion-button icon-left clear item-right>
                    <ion-icon name="navigate"></ion-icon>
                    Start
                </button>
            </ion-item>
        </ion-card>

    </ion-content>
</ion-content>

如前所述,这种方法效果很好。如果我尝试将其更改为使用集合重复而不是像这样:

<ion-header>
  <ion-navbar>
    <ion-title>
      Towers
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
    <ion-content>

        <ion-item collection-repeat="let tower of towers">
            <h1>Tower {{tower.name}}</h1>
        </ion-item>

    </ion-content>
</ion-content>

然后我得到以下错误:

Runtime Error
Error in ./TowersPage class TowersPage - caused by: Cannot read property 'name' of undefined

最佳答案

我认为您使用的是 ionic 2,您需要使用 vitualScroll 而不是 collection-repeat

<ion-list [virtualScroll]="towers">
  <ion-item *virtualItem="let tower">
    {{ tower.name }}
  </ion-item>
</ion-list>

关于javascript - ionic 收集重复不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843720/

相关文章:

javascript - 为 React 编写测试的正确方法

javascript - 加载本地 XML 文件 - Chrome 14

javascript - 如果我只有对该属性的引用,我可以得到该属性的对象吗?

javascript - Angular 1.5.x - 指令未触发

javascript - 同时多次调用同一服务

html - 对齐 div 旁边的文本

angular - Firebase 上托管的 Ionic 4 应用程序仅在重新加载时返回 404

javascript - 简单的 jQuery 隐藏/显示在 IE 中不起作用

javascript - promise 无法正常工作的 AngularJS 工厂

angularjs - Ionic/Cordova 应用程序中的身份验证