angular - কৌণিক 2 'উপাদান' একটি পরিচিত উপাদান নয়




typescript angular-components (5)

আমার একই ইস্যু প্রস্থ পিএইচপি ঝড় সংস্করণ 2017.3 আছে। এটি আমার জন্য এটি ঠিক করে: ইন্টেলিজ সমর্থন ফোরাম

এটি একটি ত্রুটি প্রস্থ ছিল @ কৌণিক ভাষা পরিষেবা: https://www.npmjs.com/package/@angular/language-service

আমি অন্য মডিউলগুলিতে অ্যাপমোডুলের ভিতরে তৈরি করা একটি উপাদান ব্যবহার করার চেষ্টা করছি। যদিও আমি নিম্নলিখিত ত্রুটি পেয়েছি:

"আনকাড (প্রতিশ্রুতিতে): ত্রুটি: টেমপ্লেট বিশ্লেষণ ত্রুটিগুলি:

'পরিচিতি-বাক্স' একটি পরিচিত উপাদান নয়:

  1. যদি 'পরিচিতি-বাক্স' কোনও কৌণিক উপাদান হয়, তবে এটি এই মডিউলটিরই অংশ কিনা তা যাচাই করুন।
  2. যদি 'পরিচিতি-বাক্স' কোনও ওয়েব উপাদান হয় তবে এই বার্তাটি দমন করতে এই উপাদানটির '@ এনজিএমডিউল.সেমাস' এ 'CUSTOM_ELEMENTS_SCHEMA' যুক্ত করুন।

আমার প্রকল্প কাঠামো বেশ সহজ:

আমি আমার পৃষ্ঠাগুলি পৃষ্ঠাগুলি ডিরেক্টরিতে রাখি, যেখানে প্রতিটি পৃষ্ঠা পৃথক মডিউলে রাখা হয় (যেমন গ্রাহক-মডিউল) এবং প্রতিটি মডিউলে একাধিক উপাদান থাকে (যেমন গ্রাহক-তালিকা-উপাদান, গ্রাহক-অ্যাড-উপাদান এবং অন্যান্য)। আমি আমার কন্টাক্টবক্স কম্পোনেন্টটি সেই উপাদানগুলির মধ্যে ব্যবহার করতে চাই (উদাহরণস্বরূপ গ্রাহক-অ্যাড-উপাদানগুলির মধ্যে)।

আপনি দেখতে পাচ্ছেন যে আমি উইজেট ডিরেক্টরিতে পরিচিতি-বাক্স উপাদান তৈরি করেছি যাতে এটি মূলত অ্যাপমোডুলের মধ্যে থাকে inside আমি যোগাযোগবক্স কম্পোনেন্ট আমদানিটি app.module.ts এ যুক্ত করেছি এবং এটিকে অ্যাপমোডুলের ঘোষণার তালিকায় রেখেছি। এটি কাজ করে না তাই আমি আমার সমস্যা googled এবং সাথে যোগাযোগ রফতানির সাথে কন্টাক্টবক্স কম্পোনেন্ট যুক্ত করেছি। সাহায্য করেনি। আমি কাস্টোম্যাক্সঅডকম্পোন্টে কন্টাক্টবক্স কম্পোনেন্ট এবং তার পরে অন্য একটিতে (বিভিন্ন মডিউল থেকে) রাখার চেষ্টা করেছি তবে একাধিক ঘোষণা রয়েছে বলে আমি ত্রুটি পেয়েছি।

আমি কী মিস করছি?


আমার ক্ষেত্রে সমস্যাটি মডিউলে উপাদান ঘোষণার অনুপস্থিত ছিল, তবে ঘোষণাটি যুক্ত করার পরেও ত্রুটিটি থেকেই যায়। আমি সার্ভারটি বন্ধ করে দিয়েছিলাম এবং ত্রুটিটি চলে যাওয়ার জন্য পুরো প্রকল্পটি ভিএস কোডে পুনর্নির্মাণ করেছি।


আমারও একি দশা. দেখা গেল যে ng generate component (সিএলআই সংস্করণ .1.১.৪ ব্যবহার করে) অ্যাপমোডিয়ালে শিশু উপাদানটির জন্য একটি ঘোষণা যুক্ত করেছে, তবে এটি টেস্টবেড মডিউলে নয় যা এটি অনুকরণ করে।

"ট্যুর অফ হিরোস" নমুনা অ্যাপ্লিকেশনটিতে নির্বাচক app-heroes সাথে একটি হিরোস HeroesComponent রয়েছে। পরিবেশন করার সময় অ্যাপটি ঠিকঠাক ng test , কিন্তু ng test এই ত্রুটি বার্তাটি উত্পন্ন করেছে: 'app-heroes' is not a known elementconfigureTestingModule app.component.spec.ts ( app.component.spec.ts ) ঘোষণায় ম্যানুয়ালি app.component.spec.ts এই ত্রুটিটি দূর করে।

describe('AppComponent', () => {
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent,
        HeroesComponent
      ],
    }).compileComponents();
  }));

  it('should create the app', () => {
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app).toBeTruthy();
  });
}

আমি একই সমস্যা পেয়েছি এবং এটি ঘটছে কারণ বিভিন্ন বৈশিষ্ট্য মডিউল ভুল করে এই উপাদানটিকে অন্তর্ভুক্ত করেছে। অন্য বৈশিষ্ট্য থেকে এটি সরানো হলে, এটি কাজ করে!


আমি যখন এই জাতীয় ত্রুটি পেয়েছি তখন এই 5 টি পদক্ষেপ আমি করি।

  • আপনি কি নিশ্চিত যে নামটি সঠিক? (উপাদানটিতে সংজ্ঞায়িত নির্বাচকও পরীক্ষা করুন)
  • একটি মডিউল মধ্যে উপাদান ঘোষণা?
  • যদি এটি অন্য মডিউলে থাকে তবে উপাদানটি রফতানি করবেন?
  • যদি এটি অন্য মডিউলে থাকে তবে সেই মডিউলটি আমদানি করবেন?
  • ক্লাইটি পুনরায় চালু করবেন?

আমি কাস্টোম্যাক্সঅডকম্পোন্টে কন্টাক্টবক্স কম্পোনেন্ট এবং তার পরে অন্য একটিতে (বিভিন্ন মডিউল থেকে) রাখার চেষ্টা করেছি তবে একাধিক ঘোষণা রয়েছে বলে আমি ত্রুটি পেয়েছি।

আপনি দুবার কোনও উপাদান ঘোষণা করতে পারবেন না। আপনার উপাদানটিকে নতুন পৃথক মডিউলে ডিক্লেয়ার এবং এক্সপোর্ট করা উচিত। পরবর্তী আপনি নিজের উপাদানটি ব্যবহার করতে চান এমন প্রতিটি মডিউলে আপনার এই নতুন মডিউলটি আমদানি করা উচিত।

আপনার কখন নতুন মডিউল তৈরি করা উচিত এবং কখন আপনার করা উচিত নয় তা বলা শক্ত। আমি পুনরায় ব্যবহৃত প্রতিটি উপাদানগুলির জন্য আমি একটি নতুন মডিউল তৈরি করি। আমার যখন এমন কিছু উপাদান থাকে যা আমি প্রায় সর্বত্র ব্যবহার করি তখন আমি সেগুলিকে একটি একক মডিউলে রাখি। আমার যখন এমন কোনও উপাদান রয়েছে যা আমি পুনরায় ব্যবহার করি না আমি অন্য কোথাও আমার প্রয়োজন না হওয়া পর্যন্ত আমি আলাদা মডিউল তৈরি করব না।

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





angular-module