在Polymer 1.0中,如何将数据绑定到元素的布尔属性?

Fra*_*sen 5 polymer

如何绑定到元素的布尔属性.看来这个

<my-element a-property-of-type-boolean='{{someBoolean}}'></my-element>
Run Code Online (Sandbox Code Playgroud)

不起作用,但我也无法找到如何在它暴露时绑定到它:

<my-element a-property-of-type-boolean></my-element>
Run Code Online (Sandbox Code Playgroud)

似乎可以选择将类型设置为Object而不是Boolean,但我不确定这种方法的有效性

谢谢 :-)

Gra*_*nze 5

如果在元素上放置属性,则相关属性将始终为true.例如:

<my-element a-property-of-type-boolean='false'></my-element>
Run Code Online (Sandbox Code Playgroud)

a-property-of-type-boolean 是真的.

因此,如果要在元素上使用布尔属性,我建议使用默认值false声明属性,然后,如果需要将值更改为true,则可以在元素上添加属性.

你的聚合物原型:

Polymer({
  is: 'my-element',
  properties: {
    aPropertyOfTypeBoolean: {
      type: Boolean,
      value: false
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

你的元素:

<my-element a-property-of-type-boolean></my-element>
Run Code Online (Sandbox Code Playgroud)


Fra*_*sen 1

好吧,对那些人感到抱歉。我没有做我的功课。实际上,一切似乎都完全按照我的希望进行,并且数据绑定工作正常。这是我为了证明我的观点而做的小例子

<!DOCTYPE html>
<html>
<head>
  <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0'>
  <meta name='mobile-web-app-capable' content='yes'>
  <meta name='apple-mobile-web-app-capable' content='yes'>

  <script src='bower_components/webcomponentsjs/webcomponents.js'></script>
  <link rel='import' href='bower_components/polymer/polymer.html'>
</head>
<body>
<dom-module id='my-element'>
    <template>
        <div>In my element it is <div>{{aPropertyOfTypeBoolean}}</div></div>
    </template>
</dom-module>
<script>
    Polymer({
        is: 'my-element',

        properties: {
            aPropertyOfTypeBoolean: {
                type: Boolean,
                value: false,
            }
        }
    });
</script>                               

<dom-module id='main-page'>
    <template>
        <paper-button on-tap='tap'>Click me</paper-button>
        <my-element a-property-of-type-boolean='{{someBoolean}}'></my-element>
        <div>In main page it is <div>{{someBoolean}}</div></div>
    </template>
</dom-module>
<script>
    Polymer({
        is: 'main-page',

        properties: {
            someBoolean: {
                type: Boolean,
                value: false
            }
        },

        tap: function(){
            this.someBoolean = !this.someBoolean;
        }
    });
</script>

<main-page></main-page>
Run Code Online (Sandbox Code Playgroud)