একটি ত্রুটি ঘটেছে: @ আউটপুট আরম্ভ করা হয়নি


102

আমি ম্যানেজারদের তাদের দলের নজর রাখার জন্য কৌনিক অ্যাপে কাজ করছি এবং আমি একটি @ আউটপুট ত্রুটির সাথে আটকেছি:

An error occurred: @Output deleteMeeting not initialized in 'MeetingItemComponent'.

আমার একটি মিটিং উপাদান রয়েছে, মিটিং আইটেম উপাদানগুলির একটি তালিকা তৈরি করে। যখন ব্যবহারকারী বিভিন্ন বোতামে ক্লিক করেন (সম্পাদনা করুন, মুছুন, বিশদ দেখান) তখন আমি ক্রিয়া সম্পাদন করতে চাই।

এখানে আমার পিতামাতার সভাগুলির টেম্পলেট রয়েছে:

<div class="meeting__list" [@newMeeting]="meetings.length">
  <app-meeting-item
    *ngFor="let meeting of meetings"
    [meeting]="meeting"
    (deleteMeeting)="deleteMeeting($event)"
    (openMeetingDialog)="openMeetingDialog($event)"
    (messageClick)="openMessage($event)"
  ></app-meeting-item>
</div>

আমার সভা আইটেম টেম্পলেট (কেবলমাত্র এই পোস্টটি দ্বারা সংশ্লিষ্ট অংশ):

<span class="meeting__actions">
    <mat-icon *ngIf="meeting.message" (click)="onMessageClick(meeting)" matTooltip="Read the message"
      matTooltipPosition="above" class="icon--notes">notes</mat-icon>
    <mat-icon (click)="onOpenMeetingDialog(meeting)" matTooltip="Edit this meeting" matTooltipPosition="above" class="icon--edit">edit</mat-icon>
    <mat-icon (click)="onDeleteMeeting(meeting.id)" matTooltip="Delete this meeting" matTooltipPosition="above" class="icon--delete">delete_outline</mat-icon>
  </span>

আমার সভা আইটেম উপাদান:

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

@Component({
  selector: 'app-meeting-item',
  templateUrl: './meeting-item.component.html',
  styleUrls: ['./meeting-item.component.scss']
})
export class MeetingItemComponent {

  @Input() meeting;

  @Output() deleteMeeting = new EventEmitter();
  @Output() openMeetingDialog = new EventEmitter();
  @Output() messageClick = new EventEmitter();

  constructor() {}

  onDeleteMeeting(meetingId) {
    this.deleteMeeting.emit(meetingId);
  }

  onOpenMeetingDialog(meeting) {
    this.openMeetingDialog.emit(meeting);
  }

  onMessageClick(meeting) {
    this.messageClick.emit(meeting);
  }
}

4
প্রদত্ত কোডটি দুর্দান্ত দেখাচ্ছে এবং যদি আপনি স্ট্যাকব্লিটজ ডেমো সরবরাহ করতে পারেন তবে সমস্যাটি চিহ্নিত করা আরও সহজ।
সুনীল সিং

উত্তর:


383

আপনার কোডটি স্ট্যাকব্লিটজে কাজ করতে , আমাকে প্রতিস্থাপন করতে হয়েছিল

import { EventEmitter } from 'events';

সঙ্গে

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

4
ঠিক একই সমস্যা ছিল, আমি উত্তর খুঁজে পেয়ে খুশি! আমি ইতিমধ্যে ভেবেছিলাম কেন আমার ইভেন্টমিটারটির জেনেরিক ধরন নেই ;-)
MoxxiManagarm ২

আমার জন্যও কাজ করেছিলাম, আমারও একই সমস্যা ছিল।
ভ্লাদিমির দেশপোটোভিচ

4
আমি এক ঘন্টা সময় কাটিয়েছি এবং তারপর এটি দেখেছি। হতাশাজনক। উত্তরের জন্য ধন্যবাদ :)
পঙ্কজ পার্কার

11
eventsপরিবর্তে আমদানি করা ভিএস কোড থেকে একটি স্বয়ংক্রিয় আমদানির কারণে যারা এখানে আছেন তাদের জন্য এক মুহুর্তের নীরবতা @angular/core
বজ্রাচার্য

4
@ আর্থার সিকির আমি ব্যথা অনুভব করছি: ডি।
বজ্রাচার্য

20

একই ত্রুটি ছিল,

আমদানি মত সঠিক ছিল

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

তবে পরিবর্তনশীল সংজ্ঞাটি ভুল ছিল:

@Output() onFormChange: EventEmitter<any>;

হতে হবে:

@Output() onFormChange: EventEmitter<any> = new EventEmitter();

হ্যাঁ. ইভেন্টএমিটার উপাদানটি দিয়ে আরম্ভ না করা হলে একই ত্রুটি ঘটে। আমি এটি একটি ফাংশন (প্রাথমিক দেখার লোড হ্রাস করতে) এর মধ্যে প্রাথমিক করার চেষ্টা করেছি, তবে কৌনিকটি এটি পাবে না।
জয়

3

এমনকি আমদানি করতেও আমার একই সমস্যা ছিল @angular/core

সমস্যা : আমি আমার উপাদান উপাদান থেকে পদ্ধতিতে EventEmmitterঅবজেক্টটি শুরু ngOnInitকরছিলাম। সমাধান : আমি সূচনাটি উপাদানটির শ্রেণি নির্মাতার কাছে স্থানান্তরিত করেছি।


2

আপনার উপাদানটিতে কেবল কোর কৌণিক মডিউলটি ব্যবহার করুন। ফাইলের শুরুতে কেবল এই কোডটি রাখুন।

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

8
আপনার উত্তরটি কর্নার্সফ্যানের উত্তরের অংশের একটি অনুলিপি বলে মনে হচ্ছে। আমার মনে হয় আপনার এটি মুছে ফেলা উচিত
ফ্যাবরিজিও

1

আমার জন্য এটি কাজ করে যদি আমি 'ইভেন্ট' থেকে আমদানি {ইভেন্টইমিটার below পরিবর্তিত হয়;

প্রতি

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

0

আমদানি পরিবর্তন করুন: এর import { EventEmitter } from 'events'; সাথে:import { EventEmitter } from '@angular/core';


কী কী ভুল ছিল এবং আপনার সমাধান কীভাবে কাজ করে তার কিছু ব্যাখ্যা যুক্ত করুন।
অভিষেক

0

@Output() isAbout: EventEmitter<boolean> = new EventEmitter(); ইভেন্ট ইমিটারের উদাহরণটি প্রয়োজন এটির কাজ করার জন্য এটি পুরো সিনট্যাক্স হওয়া উচিত

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.