2016-12-21 23 views
8

Angular2 में प्रमाणीकरण वाली वेबसाइट के लिए, मैं मुख्य ऐप घटक में प्रमाणीकरण सबमिशन के घटक का उपयोग करना चाहता हूं। SigninComponent निर्यात के बाद भीकोणीय 2 मॉड्यूल में कोई निर्यात सदस्य

app/app.component.ts(3,10): error TS2305: Module '"<dir>/app/auth/auth.module"' has no exported member 'SigninComponent'.

: हालांकि, मैं निम्नलिखित त्रुटि प्राप्त हो रही।

परियोजना फ़ोल्डर संरचना के रूप में नीचे दिखाया गया है:

enter image description here

एप्लिकेशन/प्रमाणन/auth.module.ts:

import { NgModule }  from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { FormsModule } from '@angular/forms'; 

import { RegisterComponent } from './components/register.component'; 
import { SigninComponent } from './components/signin.component'; 
import { HomeComponent } from './components/home.component'; 

import { AuthService } from './services/auth.service'; 
import { AuthHttp } from './services/auth-http'; 

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule 
    ], 
    declarations: [ 
     RegisterComponent, 
     SigninComponent, 
     HomeComponent 
    ], 
    providers: [ 
     AuthService, 
     AuthHttp 
    ], 
    exports: [ 
     RegisterComponent, 
     SigninComponent, 
     HomeComponent 
    ] 
}) 
export class AuthModule {} 

एप्लिकेशन/प्रमाणन/घटकों/साइन-इन। component.ts:

import { Component } from '@angular/core'; 
import { Router } from '@angular/router'; 
import { AuthService } from '../services/auth.service'; 

@Component({ 
    selector: 'signin', 
    templateUrl: 'app/auth/signin.html' 
}) 
export class SigninComponent { 
    ... 
} 

एप्लिकेशन/app.component.ts:

import { Component, OnInit } from '@angular/core'; 
import { Router, RouterOutlet } from '@angular/router'; 
import { SigninComponent, RegisterComponent } from './auth/auth.module'; 
import { AuthHttp } from './auth/services/auth-http'; 
import { AuthService } from './auth/services/auth.service'; 

@Component({ 
    selector: 'myapp', 
    templateUrl: 'app/app.html' 
}) 

export class AppComponent implements OnInit { 
    ... 
} 

एप्लिकेशन/app.module.ts:

import { SigninComponent, RegisterComponent } from './auth/auth.module'; 

:

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { RouterModule } from '@angular/router'; 
import { AppRoutingModule } from './app-routing.module'; 
import { AuthModule } from './auth/auth.module'; 

import { AppComponent } from './app.component'; 

import { AuthService } from './auth/services/auth.service'; 
import { AuthHttp } from './auth/services/auth-http'; 

@NgModule({ 
    declarations: [ 
     AppComponent, 
     AuthService, 
     AuthHttp 
    ], 
    bootstrap: [ AppComponent ], 
    imports : [ 
     BrowserModule, 
     FormsModule, 
     HttpModule, 
     AuthModule, 
     AppRoutingModule 
    ], 
    providers: [ 
     AuthService, 
     AuthHttp 
    ] 
}) 
export class AppModule { 
} 
+0

कोशिश एप्लिकेशन की घोषणा में SigninComponent जोड़ने के बाद एक आकर्षण की तरह काम किया/app.module.ts –

+0

आपको लगता है कि मॉड्यूल में कोई त्रुटि है हो सकता है। – Ninjaneer

उत्तर

7

आप लाइन की जरूरत नहीं है अपने app.component.ts में आप पहले से ही अपनेमें AuthModule शामिल के रूप में। AutModule ऐप में आपके घटक का उपयोग करने के लिए आयात पर्याप्त है।

त्रुटि है कि आप प्राप्त एक टाइपप्रति त्रुटि, नहीं एक कोणीय एक है, और यह कहते हुए कोई निर्यात सदस्य है कि वहाँ में सही है, के रूप में यह निर्यात, नहीं कोणीय मॉड्यूल निर्यात के लिए एक वैध EC6 वाक्य रचना की खोज करता है। यह पंक्ति इस प्रकार आपके app.component.ts में काम करेगा:

import { SigninComponent } from './auth/components/signin.component'; 
+0

इस मुद्दे को हल किया; तथ्य यह है कि टाइपस्क्रिप्ट कंपाइलर को एक स्पष्ट आयात की आवश्यकता है, हालांकि एंजुलर ऐप पूरी तरह से मॉड्यूलर नहीं है ... – user2416984

1

इसके अलावा के कुछ सामान्य मामलों:

हो सकता है आप के साथ वर्ग निर्यात "डिफ़ॉल्ट" तो

export default class Module {} 

तरह उपसर्ग बस इसे

को दूर
export class Module {} 

यह मेरे लिए समस्या हल कर रहा है

+0

डिफ़ॉल्ट कीवर्ड का अर्थ क्या है? मैंने कुछ लेखों में डिफ़ॉल्ट कीवर्ड वाले कुछ उदाहरण भी देखे। यदि यह निर्यात के लिए समस्याएं पैदा करता है, तो क्या कोई वास्तविक परिदृश्य है जहां डिफ़ॉल्ट कीवर्ड उपयोगी होगा? – rineez

+0

आपके द्वारा रूट भरने वाले डिफ़ॉल्ट कीवर्ड को जोड़कर यह डिफ़ॉल्ट मॉड्यूल होगा, मैं # मॉड्यूल नाम का उपयोग कर रूट क्लास में मॉड्यूल का जिक्र नहीं कर रहा हूं –

1

यह त्रुटि तब भी हो सकती है जब आपका इंटरफ़ेस नाम उस फ़ाइल से अलग है जो इसमें शामिल है। विवरण के लिए ES6 मॉड्यूल के बारे में पढ़ें। यदि SignInComponent एक अंतरफलक था, जैसा कि मेरे मामले में था, तो

SignInComponent 

SignInComponent.ts नाम की एक फ़ाइल में होना चाहिए।

0

मुझे इस तरह के समस्या तब के लिए जब मैं एक .ts फ़ाइल में अनेक export बयान था ...

8

परमाणु (1.21.1 ia32) के साथ कार्य करना ...मुझे वही त्रुटि मिली, भले ही मैंने app.module.ts में मेरी पाइप का संदर्भ जोड़ा और app.module.ts

समाधान मेरे नोड इंस्टेंस को पुनरारंभ करना था ... वेबसाइट को रोकना और तो कर फिर से सेवा करते हैं एनजी ... स्थानीय होस्ट करने जा रहा: 4200 इस पुनः आरंभ

संबंधित मुद्दे