【发布时间】:2017-08-30 13:05:42
【问题描述】:
我正在启动一个 Angular 2/Material Design 项目,但在尝试使用带有 <md-tab-group> 的组件时遇到了问题。我见过如下一般结构示例:
<md-tab-group>
<md-tab label="Gallery">
//gallery content here
</md-tab>
<md-tab label="Settings">
//setting content here
</md-tab>
</md-tab-group>
但是,我想将每个选项卡的功能及其内容模块化成单独的 Angular 2 组件,如下所示:
app.component.html
<md-tab-group>
<app-gallery></app-gallery>
<app-settings></app-settings>
</md-tab-group>
我目前的结构遵循基本的 Angular 2 组件约定,例如:
gallery.component.ts
import { Component, OnInit } from '@angular/core';
import {Http} from '@angular/http';
@Component({
selector: 'app-gallery',
templateUrl: './gallery.component.html',
styleUrls: ['./gallery.component.css']
})
export class GalleryComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
然后我像这样在每个组件的模板中使用<md-tab> 元素。
<md-tab label="gallery">
<p>Gallery here...</p>
</md-tab>
最后,我确保所有内容都已正确导入和声明。
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { MaterialModule } from '@angular/material';
import { AppComponent } from './core/app.component';
import 'hammerjs';
import { GalleryComponent } from './gallery/gallery.component';
@NgModule({
declarations: [
AppComponent,
GalleryComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MaterialModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这可能吗?目前我怀疑可能无法从<md-tab-group> 中提取<md-tab> 元素。对我来说,将所有选项卡及其内容包含在一个 html 文件中似乎很麻烦,更不用说破坏了组件的目的。如果有可能,我将不胜感激有关如何正确设置它的任何指导。提前致谢!
【问题讨论】:
-
您遇到什么样的错误?我也看不到在
app.component.html中为您的app-settings定义的任何选择器。 -
为了简洁起见,我只使用了一个组件
<app-gallery>。<app-settings>存在并且构造完全相同。很抱歉造成混乱。
标签: javascript angular components material-design angular-material