Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ionic 4如何通过编程更改templateUrl?_Angular_Ionic Framework_Ionic4 - Fatal编程技术网

Angular Ionic 4如何通过编程更改templateUrl?

Angular Ionic 4如何通过编程更改templateUrl?,angular,ionic-framework,ionic4,Angular,Ionic Framework,Ionic4,我找不到答案。我有一个模态组件,它需要根据当时的参数显示不同的形式。我并不特别希望为不同的模态设置多个组件,因此我希望能够根据当时的nav参数更改模态组件中的templateUrl 有解决办法吗?我认为这是不可能的。您需要在@Component()函数中更改它,而输入变量还不可用 我假设你的问题是你不想有一个带有一堆条件的巨大模板,我会通过让每个表单都有自己的组件来解决这个问题(如果你试图加载不同的模板,你无论如何都会这样),所以你最终会得到这样的模板作为你的模式模板: <app-form

我找不到答案。我有一个模态组件,它需要根据当时的参数显示不同的形式。我并不特别希望为不同的模态设置多个组件,因此我希望能够根据当时的nav参数更改模态组件中的templateUrl


有解决办法吗?

我认为这是不可能的。您需要在@Component()函数中更改它,而输入变量还不可用

我假设你的问题是你不想有一个带有一堆条件的巨大模板,我会通过让每个表单都有自己的组件来解决这个问题(如果你试图加载不同的模板,你无论如何都会这样),所以你最终会得到这样的模板作为你的模式模板:

<app-form-one *ngIf="condition"></app-form-one>
<app-form-two *ngIf="condition2"></app-form-two>
<app-form-three *ngIf="condition3"></app-form-three>

这是一种愚蠢的简单解决方案,但它很有效,而且非常干净,没有黑客攻击

如果您对此感到厌恶,必须将表单处理信息移动到组件中,您可以通过传递如下[formData]输入属性来避免:

<app-form-three *ngIf="condition3" [formData]="formData"></app-form-three>