【发布时间】:2015-12-19 04:33:22
【问题描述】:
假设我有一个自定义元素 <foo-bar></foo-bar>
我不想将标记呈现到标签中,而是想替换它们,以便“foo-bar”元素不再是 DOM 的一部分。我相信 Angular 是通过 transclude 属性做到这一点的。
有没有办法在 Aurelia 中做到这一点?
【问题讨论】:
标签: javascript aurelia
假设我有一个自定义元素 <foo-bar></foo-bar>
我不想将标记呈现到标签中,而是想替换它们,以便“foo-bar”元素不再是 DOM 的一部分。我相信 Angular 是通过 transclude 属性做到这一点的。
有没有办法在 Aurelia 中做到这一点?
【问题讨论】:
标签: javascript aurelia
您需要在组件上使用 containerless 装饰器。
来自文档的Custom Elements Section:
@containerless()- 使元素的视图在没有自定义元素容器包装的情况下呈现。这不能与@sync或@useShadowDOM一起使用。它也不能与代理行为一起使用。
所以你的组件应该是这样的:
import {customElement, bindable, containerless} from 'aurelia-framework';
@customElement('say-hello')
@containerless()
export class SayHello {
@bindable to;
speak(){
alert(`Hello ${this.to}!`);
}
}
【讨论】: