大佬教程收集整理的这篇文章主要介绍了innerhtml – Angular 2相当于ng-bind-html,$sce.trustAsHTML()和$compile?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
要做到这一点,我们可以使用custom directive that called $compile.
在角度2中所有这一切的等价物是什么?我们可以使用[inner-html]绑定,但这只适用于非常简单的HTML标签,例如< b>.它不会将自定义角度2指令转换为正常运行的HTML元素. (很像Angular 1.x,没有$编译步骤).对于Angular 2,$compile的等价物是什么?
<div> <p>Common HTML tag</p> <angular2-component>Some angular2 component</angular2-component> </div>
那么您需要使用此html作为模板创建组件(让我们称之为CompiledComponent),并使用DynamicComponentLoader在页面上插入此组件.
@Component({ SELEctor: 'compiled-component' }) @View({ directives: [Angular2Component],template: ` <div> <p>Common HTML tag</p> <angular2-component>Angular 2 component</angular2-component> </div> ` }) class CompiledComponent { } @Component({ SELEctor: 'app' }) @View({ template: ` <h2>Before container</h2> <div #container></div> <h2>After conainer</h2> ` }) class App { constructor(loader: DynamicComponentLoader,elementRef: ElementRef) { loader.loadIntoLOCATIOn(CompiledComponent,elementRef,'container'); } }
UPD您可以在loader.loadIntoLOCATIOn()调用之前动态创建组件:
// ... Annotations class App { constructor(loader: DynamicComponentLoader,elementRef: ElementRef) { // template generation const generatedTemplate = `<b>${Math.random()}</b>`; @Component({ SELEctor: 'compiled-component' }) @View({ template: generatedTemplate }) class CompiledComponent {}; loader.loadIntoLOCATIOn(CompiledComponent,'container'); } }
我个人不喜欢它,它看起来像一个肮脏的黑客给我.但这里是the plunker
PS请注意,此刻,角度2正在积极发展.所以情况可以随时改变.
以上是大佬教程为你收集整理的innerhtml – Angular 2相当于ng-bind-html,$sce.trustAsHTML()和$compile?全部内容,希望文章能够帮你解决innerhtml – Angular 2相当于ng-bind-html,$sce.trustAsHTML()和$compile?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。