Ответ 1
Попробуйте импортировать EventEmitter
из углового, а не из protractor
:
import { Component, OnInit, Output, EventEmitter } from '@angular/core';
Я получаю ошибку типа "Ожидается 0 аргументов типа, но получен 1", несмотря на то, что я следую этому уроку для T. https://youtu.be/I317BhehZKM?t=57s
Я указал:
newUserInfoComplete:boolean = false
пока что я получаю ошибку, указанную выше в <boolean>
в этой строке:
@Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();
Также, если я просто опущу <boolean>
, я получу эту ошибку:
Argument of type 'boolean' is not assignable to parameter of type 'string'.
и this.NewUserInfoComplete подчеркивается здесь:
this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);
Вот мой компонент:
import { Component, OnInit, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';
import { EventEmitter } from 'protractor';
@Component({
selector: 'app-new-user-input',
templateUrl: './new-user-input.component.html',
styleUrls: ['./new-user-input.component.css'],
animations: [slideToRight()]
})
export class NewUserInputComponent implements OnInit {
newUserInfoComplete:boolean = false
@Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();
constructor(private router: Router, r: ActivatedRoute) {
r.url.subscribe((s: UrlSegment[]) => {
console.log("url", s); //https://vsavkin.com/angular-router-understanding-router-state-7b5b95a12eab
});
}
ngOnInit() {
}
sendNewUserInfoComplete(){
this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);
}
displaySibling() {
console.log(this.router);
this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
}
closeBlade() {
this.router.navigate([{ outlets: { newuserinput: null } }]);
}
}
Попробуйте импортировать EventEmitter
из углового, а не из protractor
:
import { Component, OnInit, Output, EventEmitter } from '@angular/core';
import { Component, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';
import { EventEmitter } from 'protractor';
@Component({
selector: 'app-new-user-input',
templateUrl: './new-user-input.component.html',
styleUrls: ['./new-user-input.component.css'],
animations: [slideToRight()]
})
export class NewUserInputComponent {
newUserInfoComplete = false;
@Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();
constructor(private router: Router, r: ActivatedRoute) {
r.url.subscribe((s: UrlSegment[]) => {
console.log("url", s);
});
}
sendNewUserInfoComplete(){
this.newUserInfoCompleteEvent.emit(!!this.newUserInfoComplete);
}
displaySibling() {
console.log(this.router);
this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
}
closeBlade() {
this.router.navigate([{ outlets: { newuserinput: null } }]);
}
}
попробуй это
Я забыл проверить свой импорт! Штопать. Я использовал излучатель событий PROTRACTOR, а не угловой ядро Event Emitter
import { EventEmitter } from '@angular/core';
import { Component, OnInit, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';
@Component({
selector: 'app-new-user-input',
templateUrl: './new-user-input.component.html',
styleUrls: ['./new-user-input.component.css'],
animations: [slideToRight()]
})
export class NewUserInputComponent implements OnInit {
newUserInfoComplete = false;
@Output() newUserInfoCompleteEvent = new EventEmitter<boolean>();
constructor(private router: Router, r: ActivatedRoute) {
r.url.subscribe((s: UrlSegment[]) => {
console.log("url", s); //https://vsavkin.com/angular-router-understanding-router-state-7b5b95a12eab
});
}
ngOnInit() {
}
sendNewUserInfoComplete() {
this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);
}
displaySibling() {
console.log(this.router);
this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
}
closeBlade() {
this.router.navigate([{ outlets: { newuserinput: null } }]);
}
}
Вы только что неправильно импортировали, импортировали из @angular/core и все хорошо
import { EventEmitter, Component, OnInit, Output } from '@angular/core';
Пожалуйста, убедитесь, что EventEmitter
импортирован в @angular/core
, иначе ошибка.
Я ошибался. Я был importing-
import { EventEmitter } from 'events';
так что получаю ошибку