允许一些自定义元素Angular2

时间:2017-05-19 11:12:41

标签: angular angular2-template custom-element transclusion

说我想允许特定的自定义元素(例如):

@Component({
  selector: 'transcludor',
  template: `
    <div class='transcludor'>
      <span class='slot-one'>
        <ng-content select='slot-one'></ng-content>
      </span>
      <span class='slot-two'>
        <ng-content select='slot-two'></ng-content>
      </span>
    </div>
  `})
export class Transcludor{
//stuff goes here
end

然后我将其用于:

<transcludor>
  <slot-one>
    stuff
  </slot-one>
  <slot-two>
    stuff
  </slot-two>
</transcludor>

这失败了:

polyfills.js:3 Unhandled Promise rejection: Template parse errors:
'slot-one' is not a known element:

现在,将CUSTOM_ELEMENTS_SCHEMA添加到我的@NgModule架构确实会使问题消失,但它也允许任何和所有自定义元素。

是否可以定义一组特定的允许自定义元素(它们本身不是组件)以授权(例如)转换。

e.g。我想要: <slot-one></slot-one><slot-two></slot-two>是允许的,但<slot-three></slot-three>会抛出上述异常。

如果可以将范围限定在特定的上下文中(例如,在transcludor组件内),则为点数。

0 个答案:

没有答案