Javascript 如何基于其他特性为聚合物对象的特性设置默认值
如果未设置默认值,我希望从函数中为Javascript 如何基于其他特性为聚合物对象的特性设置默认值,javascript,polymer-1.0,Javascript,Polymer 1.0,如果未设置默认值,我希望从函数中为Polymer对象设置属性值,它依赖于其他属性 Polymer({ is: "my-element", properties : { a: String, b: String, c: { type: String, value: function() {return " " + this.a + " " + this.b} }
Polymer
对象设置属性值,它依赖于其他属性
Polymer({
is: "my-element",
properties : {
a: String,
b: String,
c: {
type: String,
value: function() {return " " + this.a + " " + this.b}
}
},
calcC: function() {return " " + this.a + " " + this.b}
});
我怎样才能实现它
<dom-module id="my-element">
<template>
<p>a: {{a}}</p>
<p>b: {{b}}</p>
<p>c: {{c}}</p>
<p>calc c: {{calcC()}}</p>
</template>
</dom-module>
<my-element a="a" b="b"></my-element>
怎么样
HTML
输出
a:a
b:b
c:a-b
a:a
b:b
c:c
为什么不准备回叫?我认为这个赋值导致了本地DOM的再生(在
ready
callback中也是如此)<代码>就绪可能会更好,因为它是“在元素的模板已被戳记并且元素的本地DOM中的所有元素都已配置(使用父对象绑定的值、反序列化的属性或其他默认值)之后调用的”。我会更新答案本地DOM的再生如何?它会被生成两次吗?你的意思是因为我有2个
标签吗?这只是为了显示是否定义了c
。它将为每个标记重新生成。关于“就绪可能会更好,因为它是”调用后,元素的模板已盖章,并在元素的本地DOM中的所有元素都已配置。在ready
callback中的属性更改将重新生成具有新值的DOM?
a: a
b: b
c: undefined undefined
calc c: undefined undefined
<dom-module id="my-element">
<template>
<p>a: {{a}}</p>
<p>b: {{b}}</p>
<p>c: {{c}}</p>
</template>
</dom-module>
<my-element a="a" b="b"></my-element>
<my-element a="a" b="b" c="c"></my-element>
Polymer({
is: "my-element",
properties: {
a: String,
b: String,
c: String
},
ready: function () {
if (this.c == undefined) {
this.c = " " + this.a + " " + this.b;
}
}
});