Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用数据绑定的聚合物核心支架更改工具_Javascript_Data Binding_Polymer - Fatal编程技术网

Javascript 使用数据绑定的聚合物核心支架更改工具

Javascript 使用数据绑定的聚合物核心支架更改工具,javascript,data-binding,polymer,Javascript,Data Binding,Polymer,我在我的网站上使用,更具体地说是 下面是我制作的一些示例代码: <core-scaffold> <core-header-panel navigation flex mode="seamed"> <core-toolbar>Application</core-toolbar> <core-menu theme="core-light-theme"> <core-item icon="settings

我在我的网站上使用,更具体地说是

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

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

应用
标题
内容在这里。。。
var menuItems=document.querySelector(“核心菜单”);
menuItems.addEventListener(“核心选择”,函数(){
console.log(menuItems.selected);
});
我想要的是,从
核心菜单
中单击一个
核心项
,则
标题
内容会相应更改。我已经能够将事件侦听器附加到按钮的选择中,但我不太知道如何使工具保持最新。聚合物有一个双向的,我还没有完全掌握


那么,用按下的菜单项标签更新
工具
-div的最明智的方法是什么呢?

您可以通过双向数据绑定轻松实现这一点。你可以绑在上面。要获得数据绑定,您可以手动设置绑定模板,但您可能只想将应用程序本身作为一个组件。像这样:

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

应用
{{item.label}
内容在这里。。。
聚合物(“my-app”{
});

是否有一种方法可以在不需要创建单独的
'my-app'
-元素的情况下完成此操作?是的,有两种方法,最简单的方法是使用自动绑定模板:。也就是说,我鼓励您编写自己的元素,因为它为您提供了一个方便的地方来声明函数、过滤器和计算属性、保持封装状态,并使您能够以新的可重用方式使用站点的组件!问题是它是我的主页,
核心支架
是包含我所有数据的主要元素,因此这样做需要我将大部分(如果不是全部)代码写入
核心支架
的模板中。。。我尝试了您的示例,它是有效的,但是我找不到一种方法来绑定
核心菜单上的eventListeners
。Polymer可以(为您处理绑定事件)[,或者您可以将代码放入(
domReady
)[并使用($.id)[.如果你有一个更具体的问题,只要问一下,我会查看网站上几乎每个标记为Polymer的问题:)我刚刚创建了一个单独的Polymer元素,正如你第一次建议的那样,这并不难实现,现在我的其余代码也有了更好的结构。因此,不需要新的jsbin,谢谢!