聚合物核心 - 支架改变工具使用数据绑定

时间:2014-07-18 21:55:53

标签: javascript data-binding polymer

我在我的网站上使用Polymer,更具体地说是Core-Scaffold

这是我制作的一些示例代码:

<core-scaffold>
  <core-header-panel navigation flex mode="seamed">
    <core-toolbar>Application</core-toolbar>
    <core-menu theme="core-light-theme">
      <core-item icon="settings" label="item1"></core-item>
      <core-item icon="settings" label="item2"></core-item>
    </core-menu>
  </core-header-panel>
  <div tool>Title</div>
  <div>Content goes here...</div>
</core-scaffold>
<script>
  var menuItems = document.querySelector("core-menu");

  menuItems.addEventListener("core-select", function(){
    console.log(menuItems.selected);
  });
</script>

我想要的是,点击core-item中的core-menu之一后,<div tool>Title</div>内容会相应更改。我已经能够将事件监听器附加到按钮的选择上,但我不知道如何使该工具保持最新状态。 Polymer有一个双向data binding,我还没有完全掌握它。

那么,使用按下的菜单项标签更新tool - div的最佳建议方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用双向数据绑定轻松完成此操作。您可以绑定的<core-menu> exposes a selectedItem attribute。要获取数据绑定,您可以手动设置绑定模板,但您可能只想让您的应用程序本身成为一个组件。像这样:

<my-app></my-app>

<polymer-element name='my-app'>
  <template>
    <core-scaffold>
      <core-header-panel navigation flex mode="seamed">
        <core-toolbar>Application</core-toolbar>
        <core-menu theme="core-light-theme" selectedItem='{{item}}'>
          <core-item icon="settings" label="item1"></core-item>
          <core-item icon="settings" label="item2"></core-item>
        </core-menu>
      </core-header-panel>
      <div tool>{{item.label}}</div>
      <div>Content goes here...</div>
    </core-scaffold>
  </template>
  <script>
    Polymer('my-app', {
    });
  </script>
</polymer-element>