Как извлечь данные из угловой модели в контроллер - PullRequest
0 голосов
/ 11 октября 2019

drink-water.component.ts

    import { Component } from 'angular/core';
    import { userInfoService } from 'some/path';

    @Component({
    selector: 'drink-water';
    templateUrl: './drink-water.component.html'
    })

    export class DrinkWaterComponent implements OnInIt {
    ...
    ...
    userInfo: userInfoModel;

    constructor (public userInfoService : UserInfoService) {}

    ngOnInit() {

    this.readUsrInfo();

    }

    readUsrInfo() {
    console.log('user info is', this.userInfoService)

   //need gender here ..to do some logic
   //need gender here..

        }

user-info.service.ts

import { Injectable } from '@angular/core';
import { UserInfoModel } from 'some/path';

@Injectable({
providedIn: 'root'
})

export class UserInfoService {
public userInfo: UserInfoModel;

constructor() {}
}

user-info.model.ts

export class UserInfoModel {
gender: string;
userName: string;
hasKids: boolean;
constructor(data: UserInfoModel) {
this.userName = date.userName;
this.gender = data.gender;
}
}

Вывод на консоль из компонента питьевой воды -> readUsrInfo (console.log ()) Пожалуйста, замените> на нисходящийсплошная стрелка как структура json. Я не смог отформатировать его

   > userInfoService {}
    > userInfo : UserInfoModel
      userName: peggy
      gender: female
      hasKids: true
      student: false
      >foods: {vegetables: Array(3), Fruits: Array(5)}
    >_proto_: Object

Вопрос

Если я попытаюсь утешить только this.userInfoService из контроллера, я получу приведенный выше вывод консоли. Как я могу получить доступ к имени и полу в методе readUsrInfo? this.userInfoService.gender возвращает неопределенное значение.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 11 октября 2019
export class UserInfoModel {
      userName= 'peggy'
      gender = 'female'
      ...
      ...
}

userInfo = new UserInfoModel()

console.log('user gender', userInfo.gender)
...