angular - 在 Angular 中嵌套组件时,我可以在应用程序选择器函数中指定额外的参数吗?
问题描述
app.routing.module.ts 文件
const routes: Routes = [
{path: 'users/:id', component: UsersComponent},
];
users.componenet.ts 文件
@Component({
selector: 'app-users',
templateUrl: './users.component.html',
styleUrls: ['./users.component.css'],
})
modal.component.ts 文件
.....................
<div class="modal-body">
<app-users></app-users>
</div>
…………………………………………………………………………
因此,用户组件依赖于输入一个 id(例如 users/1001),当我尝试在模态窗口中使用它时,如何将它输入到我的应用程序选择器中。
我已经尝试过 <app-users/1001></app-users/1001> 或 <app-users/1002></app-users/1002> 但这不起作用,即使这些模式窗口也是空白的路线确实在我的网址中起作用以生成特定数据
解决方案
You can't change the component selector. To fulfill your requirement, you may have to define one more component which is almost same as your route component.
ChildUserComponent:
@Component({
selector: 'app-child-user',
templateUrl: './child-users.component.html',
styleUrls: ['./child-users.component.css'],
})
export class ChildUsersComponent {
@Input() userId: string;
}
Your users.componenet.ts
...
export class UsersComponent implements OnInit {
userId: string;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.userId = this.route.snapshot.params.id;
}
}
Your users.componenet.html
<app-child-user [userId]="userId"></app-child-user>
Your modal.component.html
<div class="modal-body">
<app-child-user [userId]="userId"></app-child-user>
</div>
Your modal.component.ts
...
userId: string;
...
推荐阅读
- sparql - 如何限制 SPARQL 的 COUNT(*)
- c# - 在 .NET CORE 3.1 Web API 项目中配置 nLog 的自定义布局渲染器
- javascript - 如果元素已更改,如何创建替换元素的功能
- php - 计算从 codeigniter 中的 foreach 生成的表支付的总金额
- git - 推送被拒绝。未能推送一些 refs,您当前分支的尖端位于其远程分支的后面
- mysql - Azure - MySQL/PHP 错误:[2002] 每个套接字地址(协议/网络地址/端口)通常只允许使用一次
- c# - 继承的最佳实践:属性也应该是接口吗?
- javascript - onNavigationStateChange 在反应原生 WebView 组件中呈现两次
- python - 如何在 debian 10 上使用 checkinstall 安装 python3.8?
- python - 获取无限数的索引数 1121231234...n