angular - कोणीय 2 में घटक को किसी अन्य मूल घटक में आयात कैसे करें




angular2-directives (3)

मैं एक फ़ाइल से रूट रूट घटक फ़ाइल आयात करने का प्रयास कर रहा हूं। यह त्रुटि के रूप में दे ..

ज़ोन .js: 484 अनहेल्दीड प्रॉमिस रिजेक्शन: टेम्प्लेट पार्स एरर्स: 'कोर्सेज' एक ज्ञात तत्व नहीं है: 1. यदि 'कोर्सेज' एक कोणीय घटक है, तो सत्यापित करें कि यह इस मॉड्यूल का हिस्सा है। 2. यदि "पाठ्यक्रम’ एक वेब घटक है, तो इस संदेश को दबाने के लिए इस घटक के ule @ NgModule.schema ’में“ CUSTOM_ELEMENTS_SCHEMA ”जोड़ें। ( "

मेरा पहला कोणीय 2 ऐप

[त्रुटि ->] "): AppComponent @ ०: ३१; क्षेत्र: कार्य: वादा: मूल्य; त्रुटि: टेम्पलेट पार्स त्रुटियां: (…) त्रुटि: टेम्पलेट पार्स त्रुटियां: 'पाठ्यक्रम’ एक ज्ञात तत्व नहीं है।

मेरे app.component.ts [रूट घटक फ़ाइल] की तरह हो

import { Component } from '@angular/core';
import {CoursesComponent} from './courses.component';

@Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1><courses></courses>',
  directives:[CoursesComponent],
})

export class AppComponent { }

और मेरे पाठ्यक्रम। com

import { Component } from '@angular/core';
@Component({
  selector: 'courses',
  template: '<h1>courses</h1>'
})
export class CoursesComponent { }

पाठ्यक्रम से घटक घटक का आयात करते समय। com के अंदर app.component.ts फ़ाइल आयात करता है मैं @Component{} अंदर निर्देश को घोषित करने में सक्षम नहीं @Component{}

directives:[CoursesComponent] मुझे त्रुटि दे रहा है

कृपया इस पर समाधान की सलाह दें।


आपको इसे नीचे घोषित ( RC5 and later ) के रूप declarations array(meta property) of @NgModule साथ घोषित करना चाहिए

import {CoursesComponent} from './courses.component';

@NgModule({
  imports:      [ BrowserModule],
  declarations: [ AppComponent,CoursesComponent],  //<----here
  providers:    [],      
  bootstrap:    [ AppComponent ]
})

उपरोक्त उत्तर सरल शब्दों में, आपको @NgModule तहत पंजीकरण करना होगा

declarations: [
    AppComponent, YourNewComponentHere
  ] 

app.module.ts

उस घटक को import करना न भूलें।


कोणीय RC5 और RC6

यदि आपको अपने जैस्मिन परीक्षणों में उपर्युक्त त्रुटि मिल रही है, तो यह सबसे अधिक संभावना है क्योंकि आपको अपने TestBed.configureTestingModule({}) घटक को घोषित करना होगा।

TestBed इकाई परीक्षण के लिए एक वातावरण को कॉन्फ़िगर करता है और आरंभ करता है और इकाई परीक्षणों में घटकों और सेवाओं का मज़ाक / निर्माण / इंजेक्शन लगाने के लिए तरीके प्रदान करता है।

यदि आप अपने यूनिट परीक्षणों को निष्पादित करने से पहले घटक घोषित नहीं करते हैं, तो कोणीय को पता नहीं चलेगा कि आपकी टेम्पलेट फ़ाइल में <courses></courses> है।

यहाँ एक उदाहरण है:

import {async, ComponentFixture, TestBed} from "@angular/core/testing";
import {AppComponent} from "../app.component";
import {CoursesComponent} from './courses.component';

describe('CoursesComponent', () => {
  let component: CoursesComponent;
  let fixture: ComponentFixture<CoursesComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent,
        CoursesComponent
      ],
      imports: [
        BrowserModule
        // If you have any other imports add them here
      ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(CoursesComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});




angular2-directives