嗨,我创建了一个名为“panel”的自定义元素和一个自定义属性“panel-type”。我想限制这种“面板类型”只能在“面板”元素中使用。有没有办法做到这一点?
<panel value.bind='panel' panel-type='default'></panel>
- 应该管用。但没有其他元素可以使用“面板类型”。喜欢-
<some-other-tag panel-type='default'></some-other-tag>
——不应该工作
嗨,我创建了一个名为“panel”的自定义元素和一个自定义属性“panel-type”。我想限制这种“面板类型”只能在“面板”元素中使用。有没有办法做到这一点?
<panel value.bind='panel' panel-type='default'></panel>
- 应该管用。但没有其他元素可以使用“面板类型”。喜欢-
<some-other-tag panel-type='default'></some-other-tag>
——不应该工作
如果没有看到您的自定义属性的代码 - 我无法根据您的特定需求进行定制 - 但很容易实现;
在您的自定义属性中,您可以访问Element
属性 - 这是您附加属性的物理元素。因此,您可以简单地使用原生 JavaScript 来获取元素标签名称;
import {inject, LogManager} from "aurelia-framework";
@inject(Element)
export class panelTypeCustomAttribute {
allowedElememt = false;
constructor(Element) {
this.element = Element;
if(this.element.tagName == "PANEL") {
this.allowedElement = true;
} else {
LogManager.getLogger('testCustomAttribute').warn("The panel-type custom attribute can only be used on <panel /> elements");
}
}
foo() {
// Then you can check for the allowedElement flag in any of your methods;
if(this.allowedElement) {
// Do your thing
}
}
}