EventEmitter - Невозможно связать, так как это неизвестное свойство - Angular 8 - PullRequest
1 голос
/ 10 марта 2020

Я пытаюсь использовать Eventemitter, но я не могу его использовать. Я довольно новичок в angular и не понимаю, что происходит! за то что я видел в других постах я все делаю правильно! Я пытаюсь отправить массив через один компонент другому. Страница вмешательства будет единоличным ответственным и владельцем этого массива, поэтому всякий раз, когда происходит изменение в этом массиве, я хочу экспортировать данные на страницу syn c. Может кто-нибудь сказать мне, что я делаю не так?

Я получаю эту ошибку:

*Uncaught Error: Template parse errors:
Parser Error: Bindings cannot contain assignments at column 9 in [message=$event] in ng:///SyncPageModule/SyncPage.html@40:37 ("

  <ion-card>
      <app-intervention [eventTest]="[ERROR ->]message=$event"></app-intervention>
    <ion-item-divider>
        Acciones Pendientes ({{message}})
"): ng:///SyncPageModule/SyncPage.html@40:37
Can't bind to 'eventTest' since it isn't a known property of 'app-intervention'.*

Вот мой код:

InterventionPage.ts

import { EventEmitter } from 'events';

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

  constructor(private router: Router,
    public alertController: AlertController) { }

  service: any;
  initialDate: string;
  endDate: string;
  initialTime: string;
  endTime: string;
  startingTime: string;
  teste_array: any = [];
  interventions: any = ["test", "teste", "testee"];
  @Output() public eventTest = new EventEmitter();

  sendsData() {
    this.interventions.push("testThroughClick");
    this.eventTest.emit(this.interventions.length);

    console.log("interventions length: ")
    console.log(this.interventions.length);
  }

SyncPage.ts

import { InterventionPage } from '../intervention/intervention.page';


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

  services: any = [];
  teste: string;
  teste_array: any = [];
  nr: any;
  public message = "";


  constructor(private interventionsPage: InterventionPage) {
     }

}

SyncPage. HTML

<ion-card>
      <app-intervention [eventTest]="message=$event"></app-intervention>
    <ion-item-divider>
        Acciones Pendientes ({{message}})
    </ion-item-divider>
</ion-card>

1 Ответ

3 голосов
/ 10 марта 2020

Изменить

import { EventEmitter } from 'events';

на

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

и,

<app-intervention (eventTest)="message=$event"></app-intervention>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...