聚合物 - 通过纸张显示/隐藏div复选框

Syl*_*lar 7 javascript jquery html5 polymer polymer-1.0

来自Meteor背景,我使用JQuery来显示/隐藏div,使用纸质复选框,如下所示:

HTML:

<paper-checkbox name="remoteLocation" id="remote-chk" checked>Remote Location</paper-checkbox>
<div id="autoUpdate" class="autoUpdate" style="display: none;">content</div>
Run Code Online (Sandbox Code Playgroud)

脚本:

Template.<templateName>.events({
  'change #remote-chk' : function(e){
      if (e.target.checked) {
        $('#autoUpdate').fadeOut('slow');
      } else {
        $('#autoUpdate').fadeIn('slow');
      }
    }
)};
Run Code Online (Sandbox Code Playgroud)

现在,在Polymer 1.0中,我试图实现同样的事情:

<link rel="import" href="/bower_components/paper-checkbox/paper-checkbox.html">
<dom-module id="my-app">
 <template>
  <paper-checkbox name="remoteLocation" id="remote-chk" on-click="showMe" checked>Remote Location</paper-checkbox>
<div id="autoUpdate" class="autoUpdate" style="display: none;">content</div>
 </template>
 <script>
  Polymer({
   is: "my-app",
   showMe: function () {
           if (e.target.checked) {
             $('#autoUpdate').fadeOut('slow');
           } else {
             $('#autoUpdate').fadeIn('slow');
           }

         }
  });
 </script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)

请问有人请不要再看第二只眼,因为什么都行不通?谢谢.

Mat*_*tel 13

我相信在聚合物实验室中,渐弱的过渡仍然是实验性的(我可能是错误的)但是对于简单的隐藏/显示内容,一个好的方法可以是:

在你index.html

<my-app></my-app>
Run Code Online (Sandbox Code Playgroud)

您在示例中为该组件指定了my-app的名称

在你的my-app.html中

<link rel="import" href="../bower_components/paper-checkbox/paper-checkbox.html">
<dom-module id="my-app">
    <template>
        <paper-checkbox name="remoteLocation" id="remote-chk" on-click="showMe">Remote Location</paper-checkbox>
        <div id="autoUpdate" class="autoUpdate" hidden$="{{hide}}">content</div>
    </template>
    <script>
        Polymer({
            is: "my-app",
            properties: {
                hide: {
                    type: Boolean,
                    value: true // init the value to true so it will be hidden on page load
                }
            },
            showMe: function() {
                this.hide = !this.hide

            }
        });
    </script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)

使用隐藏的数据绑定助手

https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-if

您可以将隐藏的属性设置为true,并将要隐藏的div用于id

hidden$="{{hide}}"
Run Code Online (Sandbox Code Playgroud)

函数showMe然后将布尔值反转为true/false,并且由于双向数据绑定,内容将显示出来

对于淡入淡出,您甚至可以使用animate.css并使用语法

class$="{{your-class}}"
Run Code Online (Sandbox Code Playgroud)