62
задан 2 February 2018 в 10:00

4 ответа

Если Вы смотрите EventEmitter API emit метод, он может только взять единственный параметр типа T

, испускают (значение?: T)

, Так как только единственный параметр позволяется, рассмотрите передающий параметр, поскольку в object в испускают метод. Аналогично в ниже метода make & name переменная содержат их соответствующие значения.

this.addModel.emit({make: make, name: name});
//shorthand is below
this.addModel.emit({make, name});
126
ответ дан 31 October 2019 в 13:26

Другая опция сильно ввести его следующие:

@Output addModel = new EventEmitter<{make: string, name: string}>();

можно затем испустить его, любят @Pankaj-Parkar шоу

this.addModel.emit({make, name});
, или
this.addModel.emit({make: 'honda', name: 'civic'});

у Вас теперь есть строгий контроль типов вместо того, чтобы использовать object или any.

20
ответ дан 31 October 2019 в 13:26

Я зафиксировал его путем создания

EventEmitter<object>();

Затем, я смог передать объект, такой как:

this.MyOutputVariable.emit({ name: 'jack', age: '12' });

И это работало.

16
ответ дан 31 October 2019 в 13:26

Я знаю, что это - старый Вопрос для меня, я создал бы интерфейс и отправил бы его как объект, где я могу иметь свой код, более организованный

 export interface addModelArgs{
      make:string,
      name:string
    }
@Output() addModel = new EventEmitter<addModelArgs>();

, и назвать его как после

    this.addModel.emit({make: 'honda', name: 'civic'});
or 
    let savParamters:addModelArgs={make: 'honda', name: 'civic'};

    this.addModel.emit(savParamters);
1
ответ дан 31 October 2019 в 13:26

Другие вопросы по тегам:

Похожие вопросы: