离子2中的手风琴列表

时间:2016-11-04 06:54:57

标签: ionic-framework toggle accordion ionic2

我已在iconic 2内创建名为 Accordion 的自定义组件,并且在浏览器中完美地工作但设备无法正常工作。

我已将代码拆分为组件,其中

Home.ts

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {DataCards} from '../../components/data-cards/data-cards';
import {Data} from '../../components/data/data';

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

  public dataList: Data[];

  constructor(public navCtrl: NavController) {
    this.dataList = [
      new Data('title 1', 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. ','ios-remove-circle-outline', true),
      new Data('title 2', 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. ','ios-add-circle-outline', false),
      new Data('title 3', 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. ','ios-add-circle-outline', false)
    ];
  }

}

和相应的HTML

<ion-content padding>
  <data-cards [data]="dataList"></data-cards>
</ion-content>

包含我的自定义组件data-cardsdata-cards有一个输入参数data,通过该参数传递数据列表。

data.ts

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

@Component({
  selector: 'data',
  templateUrl: 'data.html'
})
export class Data {

  constructor(public title: string, public details: string, public icon: string, public showDetails: boolean) {}

}

data-cards.ts

import { Component } from '@angular/core';
import { Data } from '../data/data';

@Component({
  selector: 'data-cards',
  inputs: ['data'],
  templateUrl: 'data-cards.html'
})
export class DataCards {

  public data: Data[];

  constructor() {}

  toggleDetails(data: Data) {
    if (data.showDetails) {
        data.showDetails = false;
        data.icon = 'ios-add-circle-outline';
    } else {
        data.showDetails = true;
        data.icon = 'ios-remove-circle-outline';
    }
  }

}

app.module.ts

import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { Data } from '../components/data/data';
import { DataCards } from '../components/data-cards/data-cards';

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    Data,
    DataCards
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    Data,
    DataCards
  ],
  providers: []
})
export class AppModule {}

在iOS(ionic run ios)上运行时,我遇到如下错误:

[08:44:54]  Error: Error at /Users/imac/Documents/ionic2Accordion/.tmp/components/data/data.ngfactory.ts:29:71 
[08:44:54]  Property 'string' does not exist on type 'typeof "/path/ionic2Accordion/.tmp/components/data/data"'. 
[08:44:54]  Error at /path/ionic2Accordion/.tmp/components/data/data.ngfactory.ts:29:111 
[08:44:54]  Property 'string' does not exist on type 'typeof "/path/ionic2Accordion/.tmp/components/data/data"'. 
[08:44:54]  Error at /path/ionic2Accordion/.tmp/components/data/data.ngfactory.ts:29:151 
[08:44:54]  Property 'string' does not exist on type 'typeof "/path/ionic2Accordion/.tmp/components/data/data"'. 
[08:44:54]  Error at /path/ionic2Accordion/.tmp/components/data/data.ngfactory.ts:29:191 
[08:44:54]  Property 'boolean' does not exist on type 'typeof "/path/ionic2Accordion/.tmp/components/data/data"'. 
[08:44:54]  ngc failed 
[08:44:54]  ionic-app-script task: "build" 
[08:44:54]  Error: Error 

所以我的问题:如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:0)

data-card.ts 更改

public data: Data[];

o

Input() data: Data[]; 

因为您将从home.html中的组件创建中分配它?您还需要通过

导入输入模块
import { Component, Input } from '@angular/core';