如何引用Aurelia自定义元素中的特定元素';s<;插槽>;?
我想在Aurelia中创建一个自定义字段集,我需要在“slot”标记中设置标签元素的样式(宽度)(参见下面的示例用法)。如何访问这些元素?到目前为止,我得到的是如何引用Aurelia自定义元素中的特定元素';s<;插槽>;?,aurelia,custom-element,selectors-api,Aurelia,Custom Element,Selectors Api,我想在Aurelia中创建一个自定义字段集,我需要在“slot”标记中设置标签元素的样式(宽度)(参见下面的示例用法)。如何访问这些元素?到目前为止,我得到的是 <template> <require from="./ib-fieldset.css"></require> <fieldset style.bind="style"> <legend>${title}</legend> <slot&
<template>
<require from="./ib-fieldset.css"></require>
<fieldset style.bind="style">
<legend>${title}</legend>
<slot></slot>
</fieldset>
</template>
我是这样用的:
<ib-fieldset title="Address" top="100" left="200" labelWidth="100">
<label for="firstName">First name:</label>
<input id="firstName" type="text">
<label for="lastName">Last name:</label>
<input id="lastName" type="text">
</ib-fieldset><br>
名字:
姓氏:
我尝试使用jquery,但我不知道如何仅在字段集组件中选择元素(而不是整个页面,该页面可以包含其他字段集)。与Aurelia中的大多数情况一样,不需要jquery 吉斯特伦: fieldset.html
<template>
<fieldset style="position: absolute; top: ${top}px; left: ${left}px;">
<legend>${title}</legend>
<slot ref="slotElement"></slot>
</fieldset>
</template>
<require from="./fieldset"></require>
<ib-fieldset title="Address" top="100" left="200" label-width="100">
<label for="firstName">First name:</label>
<input id="firstName" type="text"/>
<label for="lastName">Last name:</label>
<input id="lastName" type="text"/>
</ib-fieldset><br>
consumer.html
<template>
<fieldset style="position: absolute; top: ${top}px; left: ${left}px;">
<legend>${title}</legend>
<slot ref="slotElement"></slot>
</fieldset>
</template>
<require from="./fieldset"></require>
<ib-fieldset title="Address" top="100" left="200" label-width="100">
<label for="firstName">First name:</label>
<input id="firstName" type="text"/>
<label for="lastName">Last name:</label>
<input id="lastName" type="text"/>
</ib-fieldset><br>
谢谢Jeff,但是我如何设置标签的宽度(请参见我的“labelWidth”属性)?由于插槽中的元素是在使用者中定义的,因此简单地将它们设置在那里是最容易的。请参阅我的最新答案。如果您正在创建一个泛型元素,并且确实希望它设置标签宽度,请告诉我,我将向您展示如何做到这一点。嗨,Jeff,是的,字段集应该可以处理这一点。我更新了我的答案,向您展示一种让自定义元素在内部设置标签宽度的方法。要点是使用
ref=slotElement
获取对slot元素的引用,并在视图模型的attached
方法中使用该引用来设置标签宽度。顺便说一句,您的原始代码在html中引用了labelWidth
,而不是labelWidth
。一个驼峰大小写的javascript bindable在html元素中被引用为kabob大小写属性。是的,它是querySelectorAll('label')代码>我在找什么。我没有让ref
处理
标记,我必须在其周围放置一个
,然后引用div。非常感谢,杰夫!
import {inject} from ‘aurelia-framework’;
@inject(Element)
export class IbFieldset {
constructor(element) {
this.element = element;
}
attached() {
let labels = this.element.querySelectorAll('label');
……
}