在我们开始之前,我在大约一周前开始学习Angular,不要害怕把它恢复到基础。
那你怎么做的? 在app.component.ts中,我有一个标准数组,需要多个子组件可以访问。
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
masterArray = ['Create', 'Foo', 'Bar'];
}
如何将其拉入由角度cli生成的子组件中。 例如,我需要在导航组件中使用它来生成导航面板。
<li *ngFor = "let i of masterArray; let ind = index">
<a>{{i}}</a>
</li>
答案 0 :(得分:4)
您可以将数组作为子组件的输入。
@Component({
selector: 'app-navigation',
templateUrl: './navi.component.html',
styleUrls: ['./navi.component.css']
})
export class NavigationComponent {
@Input() masterArray : string[];
}
并将数组传递给父组件的html中的子组件。
<app-navigation [masterArray]="masterArray"></app-navigation>
答案 1 :(得分:1)
如果需要多个子组件访问数据,您可能希望改为创建服务。然后,该服务可以保存阵列,任何组件都可以访问它。
我在这里有一个简单的例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
masterArray = ['Create', 'Foo', 'Bar'];
}
然后你可以像这样访问这些数据:
import {Component} from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-navigation',
templateUrl: './navi.component.html',
styleUrls: ['./navi.component.css']
})
export class NavigationComponent {
get masterArray() {
return this.dataService.masterArray;
}
constructor(public dataService: DataService) { }
}