Как я могу получить доступ к экземпляру из другого класса? - PullRequest
0 голосов
/ 14 июня 2019

Недавно я столкнулся с этой проблемой, когда не могу найти способ передать экземпляр объекта в другой класс.

Мне нужно передать созданный объект userModel из main.page.ts в menu.page.ts

Кажется, об этом очень мало информации. Я нашел один вопрос, очень похожий на мой, но он не устранил проблему.

main.page.ts

import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { User } from 'src/app/user';
import { EnrollmentService } from '../../../Services/enrollment.service';
import {Md5} from 'ts-md5/dist/md5';

@Component({
   selector: 'app-main',
   templateUrl: './main.page.html',
   styleUrls: ['./main.page.scss'],
})
export class MainPage implements OnInit {

SERVER_URL = 'http://ruben-pc/form/76/2';
submitted = false;
userModel = new User('CT', 'testeteste', false);
md5 = new Md5();



constructor(public httpClient: HttpClient, private enrollmentService: EnrollmentService) {
}

ngOnInit() {

}
}

menu.page.ts

import { Component, OnInit } from '@angular/core';
import { User } from '../../user';

@Component({
selector: 'app-menu',
templateUrl: './menu.page.html',
styleUrls: ['./menu.page.scss'],
})
export class MenuPage {

pages = [
 {
   title: 'Login',
  url: '/menu/main',
  icon: 'home'
},
{
  title: 'Funcionalidades',
  children: [
    {
      title: 'Listagem Questionário',
      url: '/menu/flutter',
      icon: 'ios-clipboard'
    },
  ]
}
];

constructor() { 
  console.log(this.userModel.loggedIn);
}
}

1 Ответ

0 голосов
/ 14 июня 2019

Похоже, что у вас есть два компонента, которые живут по разным маршрутам, вы, вероятно, должны использовать внедрение зависимостей для создания этого userModel что-то вроде:

@NgModule({
  ...
  providers: {
    ...
    {
      provide: User, // needs to be decorated with @Injectable
      useValue: User('CT', 'testeteste', false),
    }
  }
})
class SomeModule {}

и в ваших компонентах

  constructor(
    ...
    user: User, // then it will be available under this.user
  )

Также есть много документации, только что прочитанной Угловая документация

...