Angular:公共变量

时间:2017-04-11 18:31:51

标签: angular

我有一个名为“user.service.ts”的共享组件

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { AppConfig } from '../app.config';
import { User } from '../_models/index';

@Injectable()
export class UserService {
    constructor(private http: Http, private config: AppConfig) { }

    id: number = 0;
    Apt: number = 0;
 }

我有两个组成部分:

器Comp1:

import { UserService } from '../_services/user.service'

@Component({
    moduleId: module.id,
    templateUrl: 'index.html',
    styleUrls: ['userrentsettings.component.css'],
})

export class UserRentSettingsComponent implements OnInit {

    constructor(
        public userService: UserService);
         }

             
   ReadData(){
             this.userService.id = 10;
             this.userService.Apt = 10;
             }

在第二个组件上,我正在尝试阅读它:

import { UserService } from '../_services/user.service'

@Component({
    moduleId: module.id,
    templateUrl: 'index.html'
})

export class User2 implements OnInit {


    constructor(
        public userService: UserService);
         }
             
   ReadData(){
      console.log(this.userService.id);
      console.log(this.userService.Apt);
 }

UserService也在app.module

中配置为提供者 控制台上的

结果是“0” - 为什么?

2 个答案:

答案 0 :(得分:0)

您需要调用ReadData方法。

import { UserService } from '../_services/user.service'

@Component({
    moduleId: module.id,
    templateUrl: 'index.html',
    styleUrls: ['userrentsettings.component.css'],
})

export class UserRentSettingsComponent implements OnInit {

    constructor(public userService: UserService) {
         this.ReadData();
    }

             
   ReadData(){
             this.userService.id = 10;
             this.userService.Apt = 10;
             }

答案 1 :(得分:0)

发现问题: 问题是由于使用了使用的bootstrap模板:a href =" / comp2" 而不是使用: [routerLink] =" [' / COMP2']"