gpt4 book ai didi

polymer - 在Polymer中动态创建元素并设置属性

转载 作者:行者123 更新时间:2023-12-02 21:02:11 25 4
gpt4 key购买 nike

考虑定义 polymer 元素

<dom-module id="custom-element"> 
<template>
<h1>I expect to be green</h1>
</template>
<script>
Polymer({
is: 'custom-element',
properties: {
color: {
type: String,
value: 'red'
}
},
ready: function() {
this.style.color = this.color;
}
});
</script>
</dom-module>

我希望以下两个会产生相同的结果:

  1. (在标记中)

    <body>
    <custom-element color="green"></custom-element>
    </body>
  2. (JS 中)

    var customElement = document.createElement('custom-element');
    customElement.color = 'green';
    document.body.appendChild(customElement);

但事实上并非如此,因为似乎在将 customElement 附加到 document.body 之前,已设置属性并触发 polymer “就绪”功能。

所以基本上我无法动态创建(在 JS 中)自定义元素并设置它们的初始属性,与默认属性不同。

你建议我该怎么做?

谢谢!

最佳答案

attached回调中设置color而不是readyAttached 在元素被追加到 dom 后调用。

<base href="https://polygit.org/components/">
<script src="wecomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
<dom-module id="custom-element">
<template>
<h1>I expect to be green</h1>
</template>
<script>
Polymer({
is: 'custom-element',
properties: {
color: {
type: String,
value: 'red'
}
},
attached: function() {
this.style.color = this.color;
}
});
</script>
</dom-module>


<html>

<head>
<meta charset="UTF-8">
<title>Document</title>
</head>

<body>
<script>
var customElement = document.createElement('custom-element');
customElement.color = 'green';
document.body.appendChild(customElement);
</script>
</body>

</html>

关于polymer - 在Polymer中动态创建元素并设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40913161/

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