ionic 3 typescript:按值在页面之间传递对象

ionic 3 typescript : passing object between pages by value

我正在开发一个 Ionic 3 应用程序,我有一个列出项目的页面,如果我们点击一​​个项目,它会转到页面项目更新

页面项目更新包含一个更新按钮,但是当我更新了一些输入并且我 return 没有点击更新按钮就返回时,我发现该项目已经更新

所以我认为问题是我通过引用传递项目:

代码:

项目页面模板(此处为项目=配方):recipes.html

  <button ion-item *ngFor="let recipe of recipes" [navPush]="recipePage" [navParams]="recipe">
      <h2>{{recipe.title}}</h2>
      <p>{{recipe.difficulty}}</p>
  </button> 

项目详细信息页面组件:recipe.ts

  ionViewDidLoad(){

      this.recipe = this.navParams.data ;

  }

请问我如何传递有价值而不是参考的食谱?

正如克里斯所说,您应该创建对象的深层副本。像这样:

  ionViewDidLoad() {
    this.originalRecipe = this.navParams.data ;
    this.recipe =  Object.assign({}, this.originalRecipe);
  };

  update(){
    this.originalRecipe = this.recipe;
  };