Polymer 1.x:如何将数据绑定到变量布尔属性?
Polymer 1.x: How to data bind to a variable boolean attribute?
问题
How do I bind a variable to/as the disabled
attribute of a <paper-checkbox>
element?
根据我的代码结果,似乎切换 disabled
属性 的唯一方法是将 disabled
属性作为 string 在开始标签中。肯定有办法将其切换为变量吗?
http://jsbin.com/zecidojizu/edit?html,输出
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Polymer Bin</title>
<base href="http://element-party.xyz/">
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="all-elements.html">
</head>
<body>
<x-element></x-element>
<dom-module id="x-element">
<template>
<style>
paper-checkbox {
display: block;
margin-bottom: 30px;
}
</style>
<paper-checkbox >A</paper-checkbox>
<paper-checkbox disabled >B</paper-checkbox>
<paper-checkbox xdisabled >C</paper-checkbox>
<paper-checkbox disabled=true >D</paper-checkbox>
<paper-checkbox disabled="true" >E</paper-checkbox>
<paper-checkbox disabled=false >F</paper-checkbox>
<paper-checkbox disabled="false">G</paper-checkbox>
<paper-checkbox [[bool]] >H</paper-checkbox>
<paper-checkbox "[[bool]]" >I</paper-checkbox>
<paper-checkbox {{bool}} >J</paper-checkbox>
<paper-checkbox "{{bool}}" >K</paper-checkbox>
</template>
<script>
(function(){
Polymer({
is: 'x-element',
properties: {
bool: {
type: String,
value: 'disabled'
}
}
});
})();
</script>
</dom-module>
</body>
</html>
您需要像这样绑定属性:disabled=[[bool]]
。这相当于调用 element.disabled = bool
,其中元素是 paper-checkbox 的某个实例。
有关示例,请参阅 this forked JSBin。
基本上布尔值 HTML如果该属性存在则为真,如果不存在则为假。所以对于:
<paper-checkbox disabled="[[isDisabled]]"></paper-checkbox>
输出 HTML 将如下所示:
<paper-checkbox disabled></paper-checkbox>
当 isDisabled
为 true
时,看起来像这样:
<paper-checkbox></paper-checkbox>
当 isDisabled
为假时。
这就是设置
的原因
<paper-checkbox disabled="false"></paper-checkbox>
仍会禁用复选框。
中的最后一段
你没漏掉disabled$={{Boolean}}
吗?
disabled
是原生 HTML 属性。要绑定到本机属性,您必须使用 $=
而不是 =
。
<paper-checkbox disabled$="{{isDisabled}}">Foo</paper-checkbox>
问题
How do I bind a variable to/as the
disabled
attribute of a<paper-checkbox>
element?
根据我的代码结果,似乎切换 disabled
属性 的唯一方法是将 disabled
属性作为 string 在开始标签中。肯定有办法将其切换为变量吗?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Polymer Bin</title>
<base href="http://element-party.xyz/">
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="all-elements.html">
</head>
<body>
<x-element></x-element>
<dom-module id="x-element">
<template>
<style>
paper-checkbox {
display: block;
margin-bottom: 30px;
}
</style>
<paper-checkbox >A</paper-checkbox>
<paper-checkbox disabled >B</paper-checkbox>
<paper-checkbox xdisabled >C</paper-checkbox>
<paper-checkbox disabled=true >D</paper-checkbox>
<paper-checkbox disabled="true" >E</paper-checkbox>
<paper-checkbox disabled=false >F</paper-checkbox>
<paper-checkbox disabled="false">G</paper-checkbox>
<paper-checkbox [[bool]] >H</paper-checkbox>
<paper-checkbox "[[bool]]" >I</paper-checkbox>
<paper-checkbox {{bool}} >J</paper-checkbox>
<paper-checkbox "{{bool}}" >K</paper-checkbox>
</template>
<script>
(function(){
Polymer({
is: 'x-element',
properties: {
bool: {
type: String,
value: 'disabled'
}
}
});
})();
</script>
</dom-module>
</body>
</html>
您需要像这样绑定属性:disabled=[[bool]]
。这相当于调用 element.disabled = bool
,其中元素是 paper-checkbox 的某个实例。
有关示例,请参阅 this forked JSBin。
基本上布尔值 HTML如果该属性存在则为真,如果不存在则为假。所以对于:
<paper-checkbox disabled="[[isDisabled]]"></paper-checkbox>
输出 HTML 将如下所示:
<paper-checkbox disabled></paper-checkbox>
当 isDisabled
为 true
时,看起来像这样:
<paper-checkbox></paper-checkbox>
当 isDisabled
为假时。
这就是设置
的原因<paper-checkbox disabled="false"></paper-checkbox>
仍会禁用复选框。
中的最后一段你没漏掉disabled$={{Boolean}}
吗?
disabled
是原生 HTML 属性。要绑定到本机属性,您必须使用 $=
而不是 =
。
<paper-checkbox disabled$="{{isDisabled}}">Foo</paper-checkbox>