【发布时间】:2019-08-03 04:06:12
【问题描述】:
我正在开发一个包含搜索功能的应用程序。
现在我在应用程序中有 2 个组件 1.导航栏 2. 搜索网格列表
Navbar 组件包含一个文本框,您可以在其中输入搜索查询并按 Enter,该组件将进行 api 调用并获取数据。 当数据返回时,我想将此数据填充到 SearchGridList 组件中的数组中。
我很难理解在 Angular 中的组件内传递数据,有人可以看看我的代码并指导我。
navbar.component.ts
import { Component, OnInit, Input, Output } from '@angular/core';
import {DataService} from '../../services/data.service';
import {SearchResults} from '../class/search.class';
import {SearchGridListComponent} from '../search-grid-list/search-grid-list.component';
import { EventEmitter } from '@angular/core';
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.css']
})
export class NavbarComponent implements OnInit {
searchQuery : String;
//searchResultList : Array<any> = [];
constructor(private dataService : DataService) { }
doSearch () : any
{
this.dataService.doSQLSearch(this.searchQuery)
.then ((data:any)=>{
for (var i =0; i<data.Results.length;i++){
let searchObj = new SearchResults(data.Results[i]);
//I want to push data into array from SearchGrid like this
resultGridList.push(searchObj);
}
});
}
ngOnInit() {
}
}
navbar.component.html
<mat-toolbar class="main-header">
<a href="/">
<img src="../../../assets/vms-header-logo.png" id= "header-logo">
</a>
<form class="search-box">
<mat-form-field class="search-box-full-width">
<input id ="search-textbox" matInput placeholder="Enter a Barcode, DSID or any search term" name="Search" [(ngModel)]="searchQuery" (keyup.enter)="doSearch()" autocomplete="off">
</mat-form-field>
</form>
</mat-toolbar>
search-grid.component.ts
import { Component, OnInit, Input } from '@angular/core';
import {NavbarComponent} from '../navbar/navbar.component';
@Component({
selector: 'app-search-grid-list',
templateUrl: './search-grid-list.component.html',
styleUrls: ['./search-grid-list.component.css'],
})
export class SearchGridListComponent implements OnInit {
resultGridList : Array <any> = [];
constructor() { }
ngOnInit() {
}
}
【问题讨论】:
-
包含网格和导航栏的父组件的html/js代码如何?
-
请更具体。 from this具体有什么不明白的?
-
请查看此链接angular.io/guide/… 如果组件是父子组件,则可以使用输入绑定如果不是,最好的解决方案是使用服务,因为链接正在解释
-
@KamilKiełczewski - 对 - 这将是第三个未提及的组件 - App 组件。
标签: javascript arrays angular typescript components