2017-06-06 41 views
1

我在我的项目中有UX设计,就像我有一个注册页面,所以我用它的html和css创建了一个注册组件,并给出了一个状态'localhost:8080/register',即'/ register'是一个路由。 成功的注册我想显示一个不同的HTML模板用于注册一些路由统计作为“/注册/完成”,但在这里我不想做任何新的组件,所以有可能创建一个没有组件的路由。 第二种方法是我可以替换当前组件中的HTML模板以显示成功的注册确认屏幕。所以有可能动态地改变HTML模板。当我使用webpack时,我认为这是不可能的。角2路线显示确认屏幕没有compoent?

如果还有其他解决方案用不同的HTML模板和路线显示这两条相关路线,请在此分享。

在此先感谢!

+0

我挺正常的做法是设置需要身份验证的路由信息​​的路由'guard'。如果你没有登录,你将被重定向到'/ login' - 你已经登录了,你只需要去那个路由真实的组件。然后,如果用户在已经登录时主动导航到'/ login' - 只显示“你已经登录了......某些东西” –

+0

@FredrikLundin我认为你没有得到我的问题。请再次回答问题的解释,这里没有警卫的角色,也没有与我讨论过的登录相关的事情。 –

+0

你说得对,我读得太快 - 对不起!我没有真正解决您的问题,但也许这个线程可以帮助:https://stackoverflow.com/questions/40786490/dynamically-load-html-template-in-angular2 –

回答

0

使用标志来动态更改html模板。 按照您的要求在您的register.component.ts中设置标志真或假。在html模板中,使用'ngIf'在模板视图之间切换。

<div *ngIf="flag"> 
 
    Main Template 
 
</div> 
 

 
<div *ngIf="!flag"> 
 
    Successfull registration template 
 
</div>

`

+0

谢谢,这已经出现在我的脑海里。你有其他选择吗? –

0
I have solved it like you say but with optimized ngIf else in Angular 4. like following- 


<div class="parent-div"> 
    <div class="signup-center " *ngIf="!signUpDone; else confirm"> 
     <div>Signup with emailid> 
      ....Signup screen..... 
     </div> 
    </div> 
    <ng-template #confirm> 
    <div>Congratulations!! You have successfully created your account</div> 
    </ng-template> 
</div>