gpt4 book ai didi

具有默认值的 polymer 对象属性

转载 作者:行者123 更新时间:2023-12-04 14:27:42 27 4
gpt4 key购买 nike

我想在我的自定义元素中设置一个选项对象属性,当用户未提供该属性时,该属性将采用默认值。

<!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>

上面的代码不起作用,因为元素构造函数中指定的值总是覆盖我试图传入的值。如何设置它以便将选项值设置为传入的值并且默认值仅用作后备?

最佳答案

您可以使用属性中的 JSON 将对象值传递到已发布的属性中,但它必须是严格有效的 JSON (http://jsonlint.com/)。

在这种情况下,请尝试:

<my-element options='{
"option_1": "val1",
"option_2": "val2",
"allow_this": true,
"allow_that": false
}'>
</my-element>

注意属性上的单引号,以及 JSON 本身内部的双引号。 JSON 规范需要双引号。

请注意,这不是数据绑定(bind),因此它不使用 mustache 符号 {{ }} .相反,您只是在属性中描述一个字符串值,Polymer 将反序列化 ( JSON.parse) 到一个对象中。

关于具有默认值的 polymer 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720716/

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