您好我创建了一个名为'panel'的自定义元素和一个自定义属性'panel-type'。我想限制这个'panel-type'只能在'panel'元素中使用。有没有办法做到这一点?
<panel value.bind='panel' panel-type='default'></panel>
- 应该工作。但没有其他元素可以使用'panel-type'。像 -
<some-other-tag panel-type='default'></some-other-tag>
- 不应该工作
答案 0 :(得分:1)
如果没有看到自定义属性的代码 - 我无法根据您的具体需求进行定制 - 但这很容易实现;
在自定义属性中,您可以访问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
}
}
}