Использовать переменную одного компонента в другом компоненте в том же файле - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть два компонента, определенные в одном и том же файле , и я пытаюсь получить доступ к одной переменной компонента в другой, и получил этот ответ, но функция get SomeValue()не появляется в другом классе, когда я пытаюсь сослаться на него.

Дан ответ на предоставленную ссылку:

export class Demo {
const sum = 10;

get SumValue() {
    return this.sum;
}
}

import -> Demo

export class Demo2 {
   private sum: number;
   this.sum = Demo.SumValue();
}

Я могу использовать общий сервис, но не хочу использовать его только для одной переменной.

Есть ли что-то, чего мне не хватает в этом ответе?

1 Ответ

0 голосов
/ 12 декабря 2018

Это называется Component Interaction

, для этого вам нужно использовать @Input.

Если свойство, которое вы хотите отправить потомку, изменяется асинхронно, тогда вам нужно использовать EventEmitter

проверьте эту ссылку для справки

вот простой пример:

Дочерний компонент

import { Component, Input  } from '@angular/core';

@Component({
    selector: 'child-component',
    template: `<h2>Child Component</h2>
               current count is {{ count }}
    `
})
export class ChildComponent {
    @Input() count: number;
}

Родительский компонент:

import { Component} from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
        <h1>Welcome to {{title}}!</h1>
        <button (click)="increment()">Increment</button>
        <button (click)="decrement()">decrement</button>
        <child-component [count]=Counter></child-component>` ,
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Component Interaction';
  Counter = 5;

  increment() {
    this.Counter++;
  }
  decrement() {
    this.Counter--;
  }
}

Ссылка

...