gpt4 book ai didi

javascript - 如何通过传递参数属性来更改 polymer 元素模板

转载 作者:行者123 更新时间:2023-12-03 06:40:54 24 4
gpt4 key购买 nike

我正在从头开始创建一个 slider Web 组件来学习。

我希望按钮在属性 controlVisiblefalse 时隐藏,并在属性 true 时显示,但我的选择器 $( '#botaoVoltar') 没有得到任何东西。

我错过了什么?

index.html:

<body>
<slider-js controlVisible='false' ></slider-js>
</body>

polymer.html:

<polymer-element name="slider-js">
<template>
<center>
<div id="container">
<div id="Buttons">
<button name="voltar" id="botaoVoltar"><<</button>
</div>
</div>
</center>
</template>
</polymer-element>

<script>
Polymer('slider-js', {
controlVisible: false,

ready: function () {
if (this.controlVisible === false) {
$('#botaoVoltar').hide();
} else {
$('#botaoVoltar').show();
}
}
});
</script>

该属性工作正常。如果我 console.log 它,我可以看到它是 true 还是 false,但模板仍然使用按钮呈现。

最佳答案

jQuery 无法获取 Polymer 的本地 DOM,因此您必须使用 Polymer 自己的 DOM API 。实际上, polymer 的automatic node finding提供对 ID 为 this.$ 的节点的快速访问。例如,您可以使用 this.$.botaoVoltar 访问示例中的 botaoVoltar 按钮。

看起来您正在使用旧的 Polymer(1.0 之前的版本)。您应该切换到最新版本的 Polymer (1.5.0)。以下是升级到最新 Polymer 版本的代码:

<head>
<base href="https://polygit.org/polymer+1.5.0/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
</head>
<body>
<span>With control-visible:</span>
<x-slider control-visible></x-slider>

<span>Without control-visible:</span>
<x-slider></x-slider>

<!-- Normally, you would define this element in its own file. -->
<dom-module id="x-slider">
<template>
<div id="container">
<div id="Buttons">
<button id="botaoVoltar">&lt;&lt;</button>
<button>&gt;&gt;</button>
</div>
</div>
</template>

<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'x-slider',

properties : {
controlVisible: {
type: Boolean,
value: false
}
},

ready: function() {
this.$.botaoVoltar.hidden = !this.controlVisible;
}
});
});
</script>
</dom-module>
</body>

codepen

关于javascript - 如何通过传递参数属性来更改 polymer 元素模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com