【问题标题】:Pass item from ngFor on click to an Object of other page单击时将项目从 ngFor 传递到其他页面的对象
【发布时间】:2018-07-08 19:04:06
【问题描述】:

我正在尝试将一个项目从我的 ngFor-Loop 推送到另一个页面的对象。不幸的是,我无法访问该对象。

HTML home.html

  <ion-card class="card card-ios" *ngFor="let card of cardArray; let i = index">
  ....
  <button class="favButton" ion-button icon-start clear (click)="addFavourite(card, i)">

JS home.ts

public cardFavouriteArray: any = [];
cardFavouriteArray: any = [];

addFavourite(card, i) {
  this.cardFavouriteArray.push(card);
}

HTML favourites.html

<ion-card class="card card-ios" *ngFor="let card of favouriteArray; let i = index">

JS favourites.ts

favouriteArray: any = [];

 ionViewDidLoad() {
    this.favouriteArray = this.cardFavouriteArray;
 }

这不起作用。我遇到了问题"property "cardFavouriteArray" does not exist on type FavouritesPage.

【问题讨论】:

  • 你最喜欢的文件没有this.cardFavouriteArray
  • 将您的变量声明为 cardFavouriteArray:any[]=[] (您忘记声明为任何数组)。如果你想在组件之间“共享”一个变量,你需要使用一个服务和这个服务中的一个变量来存储数据
  • 最喜欢的组件和home组件,父子还是兄弟是什么关系?

标签: javascript angular ionic3


【解决方案1】:

您可以考虑在页面之间导航时传递最喜欢的favorite 对象。此后,一旦您登陆页面。在该组件上查找传递的对象

constructor(private navCtrl: NavController) {}

addFavourite(card, i) {
  this.cardFavouriteArray.push(card);
}

navigateToOtherPage(){

    this.navCtrl.push(FavoritesPage, this.cardFavouriteArray);
}

代码

@Component({
  ...
})
class OtherPage {
  constructor(private navParams: NavParams) {
     console.log("navParams", navParams)
  }
}

阅读更多NavController

【讨论】:

    【解决方案2】:

    如何用localStorage解决

    我们可以使用localStorage.getItem.setItem来保留页面之间的信息。如果您不是在框架中编写,这可能是要走的路。

    addFavourite(card, i) {
      this.cardFavouriteArray.push(card);
      localStorage.setItem('cardFavouriteArray', JSON.stringify(this.cardFavouriteArray))
    }
    ...
    ionViewDidLoad() {
      this.favouriteArray = JSON.parse(localStorage.getItem('cardFavouriteArray'));
    }
    

    【讨论】:

    • 这个问题是专门针对 Angular 而不是 AngularJS 提出的
    • 哦,我错过了,我很抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多