Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于其他特性为聚合物对象的特性设置默认值_Javascript_Polymer 1.0 - Fatal编程技术网

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;
        }
    }
});