angular - Angular:- 基于子组件值的父组件路由
问题描述
需要在父组件级别进行路由。无法在子级别使用查询参数进行路由。我需要做从子到父的事件发射器,并在父组件设置路由。因为子组件是共享组件。
/// parent.html
<child-shared-comp></child-shared-comp>
.........................
child-shared-component.ts
func(dateSelected:date){
If(condition statisfy){
then should enable routing to another page
using query params { queryParams: date }
}
}
单击子组件中的 func() 时,包括父组件在内的整个页面都应该更改(我的意思是路由到另一个页面)。
解决方案
实现这一点的一种方法是向子组件添加一个输出,该输出在函数“func()”触发时发出,这是在子组件与父组件之间进行通信的好方法。
例子:
/// parent.html
<child-shared-comp (dateSelected)="dateSelected($event)"></child-shared-comp>
// parent.component.ts
...
dateSelected(selectedDate: Date) {
//routing {queryParams: selectedDate}
}
//child-shared-component.ts
import { Output, EventEmitter } from '@angular/core';
@Output() dateSelected: EventEmitter<Date> = new EventEmitter<Date>();
func(dateSelected: Date){
If(condition statisfy){
this.dateSelected.emit(dateSelected);
}
}
有关输出的更多信息: https ://angular.io/guide/template-syntax#input-and-output-properties
推荐阅读
- python - 如何删除 .xml 文件的匹配子元素属性?
- php - Laravel 搜索属于
- python - “pygame.Surface”对象的描述符“get_at”不适用于“元组”对象
- navigation - 如何在 NavigationViewController 的 NavigationMapView 中隐藏 logoView?
- swift - 如何在 Swift 5 中检查指定目录中的文件?
- if-statement - 如何结合 ifelse 和 left_join
- c++ - 使用 Void 和指针在 C++ 中交换两个已初始化的数组
- java - Java 2D Array rows vs cols语法问题
- python - 尝试使用 BeautifulSoup 和 Requests 抓取学习管理网站
- html - 当源 HTML 有多个嵌套标签时,如何在 CSS 中选择标签?