在Aurelia中将自定义元素替换为模板本身(而不是将其包含在自定义元素中)?

Jos*_*eld 5 javascript aurelia

假设我有一个自定义元素<foo-bar></foo-bar> 而不是将标记呈现到标记中,我想替换它们,以便"foo-bar"元素不再是DOM的一部分.我相信Angular通过transclude属性来做到这一点.

在Aurelia有办法做到这一点吗?

nem*_*esv 6

您需要containerless在组件上使用装饰器.

从文档的自定义元素部分:

@containerless() - 使元素的视图在没有自定义元素容器包装的情况下呈现.这不能与@sync或一起使用@useShadowDOM.它也不能用于代理行为.

所以你的组件应该是这样的:

import {customElement, bindable, containerless} from 'aurelia-framework';

@customElement('say-hello')
@containerless()
export class SayHello {
  @bindable to;

  speak(){
    alert(`Hello ${this.to}!`);
  }
}
Run Code Online (Sandbox Code Playgroud)