Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-子组件问题_Angular - Fatal编程技术网

Angular 角度-子组件问题

Angular 角度-子组件问题,angular,Angular,我试图创建一个只包含一个priming下拉列表的公共组件,该下拉列表将在许多其他组件中使用 下拉列表是trackingsystem.component @Component({ selector:'tracksystem', templateUrl: '<path>' }) export class TrackSystemComponent {} 我正在尝试在projectheader.component中嵌套trackingsystem.component 当我将两个组件

我试图创建一个只包含一个priming下拉列表的公共组件,该下拉列表将在许多其他组件中使用

下拉列表是trackingsystem.component

@Component({
  selector:'tracksystem',
  templateUrl: '<path>'
})
export class TrackSystemComponent {}
我正在尝试在projectheader.component中嵌套trackingsystem.component

当我将两个组件都放在同一个文件夹中时,它可以正常工作,但我希望将所有这些公共组件移动到一个公共子文件夹中

当子组件位于不同的文件夹中时,我会得到错误,“如果‘trackingsystem’是一个角度组件,那么请验证它是否是该模块的一部分。”

我已经阅读了许多其他堆栈溢出链接中的解决方案。即使错误相似,此问题也不是以下问题的重复

trackingsystem.component.ts

import { Component, OnInit } from '@angular/core';
import { TrackingSystem } from '../../_models/index';
import { TrackingSystemService } from '../../_services/index';
import { ToastrService } from 'toastr-ng2';
import { InputTextModule, DataTableModule, ButtonModule, DialogModule, DropdownModule } from 'primeng/primeng';
import { SelectItem } from 'primeng/api';
import { NgModule } from '@angular/core';


@Component({
    templateUrl: './trackingsystem.component.html'
})


@NgModule({
    declarations: [
        TrackingSystemComponent
    ],
exports: [
    TrackingSystemComponent
]})
projectheader.component projecttest工作正常。它与projectheader位于同一文件夹中

<div class="header ui-g-12">
    <h2>
        Create new Project
    </h2>
</div>
<table>
    <tr>Customer:<td></td>some customer name<td></tr>
    <tr>etc:<td></td>rest of fields that should be captured<td></tr>
    <tr><strong>save</strong><td></td><strong>cancel</strong><td></tr>
</table>   
</div>
<trackingsystem></trackingsystem>
<projecttest></projecttest>

app.module.shared.ts 解析到相关字段

import { Component, OnInit, ViewChild, NgModule } from '@angular/core';
import { MenuItem, DataTable, LazyLoadEvent, DropdownModule, ContextMenuModule } from "primeng/primeng";
import { Observable } from 'rxjs/Observable';
import { ProjectHeader } from '../../_models/index';
import { ExcelService } from '../../_services/excel.service'
import { ProjectHeaderService } from '../../_services/index';
import { TrackingSystemComponent } from '../_common/trackingsystem/trackingsystem.component';

class ProjectHeaderinfo implements ProjectHeader {
constructor( list of parameters)}

@Component({
selector: 'projectheader',
templateUrl: './projectheader.component.html',
styleUrls: ['./projectheader.component.css']
})

@NgModule({
imports: [TrackingSystemComponent]})
export class ProjectHeaderComponent implements OnInit { }
import { ProjectHeaderComponent } from './components/dsfluidtest/projectheader.component';
import { ProjectHeaderService } from './_services/index';
import { TrackingSystemComponent } from './components/_common/trackingsystem/trackingsystem.component';
import { TrackingSystemService } from './_services/index';

@NgModule({
declarations: [
    AppComponent,
    ProjectHeaderComponent,
    ProjectTestComponent,
    TrackingSystemComponent              
],
providers: [ProjectHeaderService,  AuthService, TrackingSystemService,
    { provide: LocationStrategy, useClass: HashLocationStrategy },
    { provide: RequestOptions, useClass: AppBaseRequestOptions }],
imports: [
  //TrackingSystemComponent, //Also tried leaving this uncommented
DropdownModule, // and other such modules 
    RouterModule.forRoot([
        { path: 'projectheader', component: ProjectHeaderComponent },
        { path: 'projecttest', component: ProjectTestComponent },
         { path: 'trackingsystem', component: TrackingSystemComponent }
    ])
]
})
export class AppModuleShared {}//This is blank in my app

您的主应用程序模块应导入Priming下拉列表、跟踪系统组件和标题,以确保它们在整个应用程序范围内可用。然后,标题应该只导入轨迹系统组件,最后,轨迹系统组件应该只导入Priming下拉列表。 当然,所有路径都是相对于导入它们的文件的。请确保首先检查该路径。希望这能对你有所帮助。 跟踪系统不应该是一个模块,而应该是一个组件

@Component({
  selector:'tracksystem',
  templateUrl: '<path>'
})
export class TrackSystemComponent {}
@组件({
选择器:'轨道系统',
templateUrl:“”
})
导出类TrackSystemComponent{}

您没有在跟踪系统组件的
@组件
注释中定义
选择器
。谢谢您的帮助。选择器是个问题。为了便于阅读,我没有在app.module中包含所有导入内容。我正在那里导入Priming下拉列表,但没有图片。