2017-02-16 317 views
0

我从某些服务中获取部分页面。我如何实现角色表达或作为动态内容工作的路由器工作人员?动态角度2表达式绑定到视图

Controller.ts

variable = 'some text'; 
dynamicContent =' 
    {{variable}} 
    Or 
    <a [routerLink]="contact"]></a>'; 

View.html

<div> 
    {{dynamicContent}}//plain text 
    <div [innerHtml]="dynamicContent"></div> //html without angular expressions 
</div> 

所以innerHTML的接近。它可以构建html,但不能理解角2表达式。我发现了ng-dynamic模块,但它也不支持html。最好的解决方案atm是我在一些堆栈问题中找到的html插件。但它不支持AOT ...

+0

检查此 http://stackoverflow.com/questions/34784778/equivalent-of-compile-in-ang ular-2 – BotanMan

回答

0

Angular从不处理动态内容,除非剥离某些安全相关的东西(如果未经过消毒)。当静态添加到组件模板时,角绑定和组件是只处理

您可以动态创建一个组件,你把动态内容融入其中部件模板

参见Equivalent of $compile in Angular 2

+0

它似乎可以解决问题。唯一的问题是它如何支持AOT。我会检查出来 – user2771738

+0

我不知道。我听到的最后一件事是,当浏览器动态平台被导入时,它不适用于AoT,这是必需的。 –

0

你应该写这样的:

dynamicContent = this.variable + ' Or <a href="#/contact"></a>'; 

这里是一个plunker: https://plnkr.co/edit/EqJRUs3mGKwjnXzbuwAo?p=preview

+0

在你的plunker中,你正在使用纯正的html Go to Site,它像我说的那样工作得很好。问题是当我试图有角度的2路链接: user2771738

+0

仍然纯html在变量:dynamicContent ='' + this.variable + ' CrisisCenter';在我的情况下,我使用HTML 5推状态。我的链接不使用#符号。这就像一个小小的解决方法。 动态内容需要放在如下所示的角度符号中: user2771738