Передача значений внутри объекта другому объекту - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь отправить данные между страницами в ionic 3 и для этого я использую объект, который я использую для хранения пользовательского ввода внутри моего объекта A, а затем я использую this.navParams.get для хранения внутри моего объекта Bценности внутри моего первого объекта.Моя проблема в том, что я не знаю, как это сделать правильно.Достаточно просто, это все, что мне нужно сделать, у меня есть атрибуты внутри моего объекта A, называемые именем, фамилией, возрастом и ростом, эти атрибуты я хочу передать им внутри моего объекта B, чтобы я мог их отобразить.Что касается ошибки, это то, что я получаю, когда пытаюсь:

Cannot read property 'nome' of undefined

А вот как я пытался это сделать:

My home.html

    <ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  The world is your oyster.
  <p>
    If you get lost, the <a href="http://ionicframework.com/docs/v2">docs</a> will be your guide.
  </p>
  <ion-input placeholder="Insira o nome do objeto" [(ngModel)]="myObject.nome"></ion-input>
  <ion-input placeholder="Insira o sobrenome do objeto" [(ngModel)]="myObject.sobrenome"></ion-input>
  <ion-input placeholder="Insira a idade do objeto" [(ngModel)]="myObject.idade"></ion-input>
  <ion-input placeholder="Insira a altura do objeto" [(ngModel)]="myObject.altura"></ion-input>
  <button ion-button full (click)="goPage()">Go Item page</button>

</ion-content>

My test.html

<!--
  Generated template for the TestPage page.

  See http://ionicframework.com/docs/components/#navigation for more info on
  Ionic pages and navigation.
-->
<ion-header>

  <ion-navbar>
    <ion-title>Test</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>
<h1>Nome:{{user.nome}}</h1>
<h1>Sobrenome:{{user.sobrenome}}</h1>
<h1>Idade:{{user.idade}}</h1>
<h1>Altura:{{user.altura}}</h1>
</ion-content>

my Home.ts

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { TestPage } from '../test/test';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  public myObject ={
      nome: "",
      sobrenome: "",
      idade:"",
      altura:"",

  };
  constructor(public navCtrl: NavController) {

  }
  goPage(){
    this.navCtrl.push(TestPage, {text:this.myObject});
  }
}

my test.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

/**
 * Generated class for the TestPage page.
 *
 * See https://ionicframework.com/docs/components/#navigation for more info on
 * Ionic pages and navigation.
 */

@IonicPage()
@Component({
  selector: 'page-test',
  templateUrl: 'test.html',
})
export class TestPage {
public text:string;
public user:any = {}; 
  constructor(public navCtrl: NavController, public navParams: NavParams) {
   // Precisely how i store myObject(Object A) inside my Object B(user) this.user = this.navParams.get('myObject');
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad TestPage');
  }

}

1 Ответ

0 голосов
/ 20 октября 2018

home.ts

  goPage(){
    this.navCtrl.push(TestPage, {'myObject':this.myObject});
  }

test.ts

  constructor(public navCtrl: NavController, public navParams: NavParams) {
    this.user = this.navParams.get('myObject');
  }
...