Javascript 如何访问并可能修改子元素组件的属性?
从Lit元素的方法内部组件类定义:如何访问子组件的属性?我正在尝试获取/修改子对象的属性值。 e、 gJavascript 如何访问并可能修改子元素组件的属性?,javascript,lit-element,Javascript,Lit Element,从Lit元素的方法内部组件类定义:如何访问子组件的属性?我正在尝试获取/修改子对象的属性值。 e、 g 。。。 render(){ 返回html` 查询限制 更改属性 `; } ... changeQueryLimit(){ 让topicsTree=this.shadowRoot.getElementById(“主题树”); //TODO:console.log(topicsTree.querylimit); } 如果主题unicode树核心也是一个自定义元素,那么希望它也有一个属性setter
。。。
render(){
返回html`
查询限制
更改属性
`;
}
...
changeQueryLimit(){
让topicsTree=this.shadowRoot.getElementById(“主题树”);
//TODO:console.log(topicsTree.querylimit);
}
如果主题unicode树核心
也是一个自定义元素,那么希望它也有一个属性setter/getter(这是lit元素的默认值),因此非常简单
let topicsTree = this.shadowRoot.getElementById("topics-tree");
topicsTree.querylimit = 5;
我会成功的
如果没有,则可以直接设置和修改属性
topicsTree.setAttribute('querylimit', 5);
下面是如何访问和可能修改子元素组件属性的示例:
从'@polymer/lit-element'导入{LitElement,html};
类MenuElement扩展了LitElement{
静态获取属性(){return{
qlimit:{type:String}
}
}
构造函数(){
超级();
这个.qlimit=“9”;
}
render(){
返回html`
查询限制
更改属性
`;
}
changeQueryLimit(){
//让topicsTree=this.$.topicsTree;
log('-->',this.shadowRoot.querySelector(“#主题树”).querylimit);
this.qlimit=“10”
设置超时(()=>{
console.log('-->',this.shadowRoot.querySelector(“#主题树”).querylimit)},200)
}
}
自定义元素。定义('menu-element',MenuElement);
我有一个语法错误,这让我觉得我无法访问属性。我真傻。
topicsTree.setAttribute('querylimit', 5);
import { LitElement, html } from '@polymer/lit-element';
class MenuElement extends LitElement {
static get properties(){ return {
qlimit:{type:String}
}
}
constructor() {
super();
this.qlimit="9";
}
render() {
return html`
<div id="div">
<label for="queryLimit">Query Limit</label>
<input type="number" name="queryLimit" id="queryLimit" value="7" min="1" max="21">
<button @click="${this.changeQueryLimit}">change attributes</button>
</div>
<topics-unicode-tree-core .querylimit="${this.qlimit}" id="topics-tree"></topics-unicode-tree-core>
`;
}
changeQueryLimit() {
//let topicsTree = this.$.topicsTree;
console.log('-->', this.shadowRoot.querySelector("#topics-tree").querylimit );
this.qlimit="10"
setTimeout(()=>{
console.log('-->', this.shadowRoot.querySelector("#topics-tree").querylimit )},200)
}
}
customElements.define('menu-element', MenuElement);