作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目中有一个自定义的@NgComponent,如果我将它放在应用程序的静态 HTML 中,它就可以工作。我想弄清楚的是如何动态地向 DOM 添加一个?如果我构造我的 Component 的实例,它似乎不是 Element 类型,因此它不能直接添加到 DOM 中元素的子元素。是否有另一种方法来构建我的组件或将其包装以注入(inject) DOM?
例如我天真地期望能够做类似的事情:
dom.Element holderEl = dom.document.querySelector("#my-holder");
holderEl.children.add( new MyComponent() );
holder.innerHtml="<my-component></my-component>"
dom.Element el = dom.document.createElement("my-component");
dom.document.body.append(el);
最佳答案
您可以动态添加组件,但您必须手动调用 Angular 编译器,以便它注意到 innerHTML 中嵌入了一个组件。
但是,这不是“角度方式”。
相反,将您的模板编写为
<div id="my-holder">
<my-component ng-if="should_component_be_displayed"></my-component>
</div>
my-component
仅当
should_component_be_displayed
时才会创建并包含在 DOM 中是真的。
my-holder
div 可以被删除,这会导致更干净的 DOM 结构。
关于dart - Angular.Dart 如何将组件动态添加到 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058053/
我是一名优秀的程序员,十分优秀!