Polymer 具有默认值的聚合对象属性
我想在我的自定义元素中设置一个选项对象属性,当用户未提供时,该属性将采用默认值Polymer 具有默认值的聚合对象属性,polymer,Polymer,我想在我的自定义元素中设置一个选项对象属性,当用户未提供时,该属性将采用默认值 <!DOCTYPE html> <html> <head> <script src="bower_components/platform/platform.js"></script> <link rel="import" href="bower_components/polymer/polymer.html"> </head
<!DOCTYPE html>
<html>
<head>
<script src="bower_components/platform/platform.js"></script>
<link rel="import" href="bower_components/polymer/polymer.html">
</head>
<body>
<my-element options="{{{
option_1: 'val1',
option_2: 'val2',
allow_this: true,
allow_that: false
}}}">
</my-element>
</body>
</html>
<polymer-element name="my-element" attributes="options">
<template>
<ul>
<!-- ... -->
</ul>
</template>
<script>
Polymer('my-element', {
options: {
option_1: 'default_val1',
option_2: 'default_val2',
allow_this: false,
allow_that: false
}
});
</script>
</polymer-element>
聚合物(“my-element”{
选项:{
选项1:“默认值1”,
选项2:“默认值2”,
允许你这样说:错,
允许你说:错
}
});
上面的代码不能作为元素构造函数中指定的值工作,它总是覆盖我试图传递的值。如何设置它,使选项值设置为传入的值,而默认值仅用作备用值?数据绑定在聚合元素之外不起作用。使用或将my元素的用法包装在另一个自定义聚合元素中 但是,您将得到选项表达式的解析错误。您需要在对象大括号周围放置空格:
options=“{{{{…}}}”
您还应该检查Polymer文档中关于初始化数组和对象属性的部分中的警告。您可以使用属性中的JSON将对象值传递到发布的属性中,但它必须是严格有效的JSON() 在这种情况下,请尝试:
<my-element options='{
"option_1": "val1",
"option_2": "val2",
"allow_this": true,
"allow_that": false
}'>
</my-element>
请注意属性上的单引号,以及JSON本身内部的双引号。JSON规范需要双引号
请注意,这不是数据绑定,因此它不使用mustache表示法
{{}
。相反,您只是在一个属性中描述一个字符串值,Polymer将反序列化(JSON.parse
)到一个对象中。如何将绑定作为值options='{“option\u 1”:“[[ajax.response]]”传递给?如果在组件中将其初始化为:options:{}