6

Polymer 1.0 を使用して、紙の引き出しとパネルのレイアウトを作成しました。引き出しには、鉄のページに綴じられた紙のアイテムを含む紙のメニューを使用したメニューがあります。この例はContent Switcheroo with Core-Pages -- Polycasts #09から取得し、Polymer 1.0 要素を使用するように変換しました。以下のコードでは、紙のアイテムがハードコードされている私のコメント セクションを見ることができます。これはうまくいきます。

<template is="dom-repeat">次のステップは、要素を使用してメニュー項目の任意の配列を反復処理することにより、メニューを動的に作成することでした。メニューは正しくレンダリングされます (配列にバインドされているすべてのメニュー項目を確認できます) が、項目をクリックできず、鉄のページが表示されません。attr-for-selected に使用されている data-category 属性が内部で機能していないよう<template is="dom-repeat">です。

これをどのように機能させることができますか?編集: attr-for-selected 属性を削除し、インデックス作業を使用してアイアンページを切り替えますが、配列のインデックスに依存することは、私の状況ではオプションではありません。

私の index.html は次のとおりです。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>My Test</title>
<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="bower_components/polymer/polymer.html">
<link rel="import" href="bower_components/iron-icons/iron-icons.html">
<link rel="import" href="bower_components/iron-pages/iron-pages.html">
<link rel="import" href="bower_components/paper-drawer-panel/paper-drawer-panel.html">
<link rel="import" href="bower_components/paper-toolbar/paper-toolbar.html">
<link rel="import" href="bower_components/paper-header-panel/paper-header-panel.html">
<link rel="import" href="bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="bower_components/paper-item/paper-item.html">
<link rel="import" href="bower_components/paper-styles/paper-styles.html">
<link rel="import" href="bower_components/paper-menu/paper-menu.html">
<style>
</style>
</head>
<body>
<my-app></my-app>
<dom-module id="my-app">
<style>
</style>
<template>
<paper-drawer-panel>
  <paper-header-panel drawer class="fit">
    <paper-toolbar>
      <div>Drawer</div>
    </paper-toolbar>
    <paper-menu class="content fit" selected="{{page}}" attr-for-selected="data-category">
      <!-- This works -->
<!--
        <paper-item data-category="item1" label="item1">
            <span>John Smith</span>
        </paper-item>
        <paper-item data-category="item2" label="item2">
            <span>Jane Doe</span>
        </paper-item>
-->

      <!-- This does not work -->
      <template is="dom-repeat" items="{{names}}">
        <paper-item data-category="{{item.itemNum}}" label="{{item.itemNum}}">
          <span>{{item.first}}</span><span>{{item.last}}</span><span>{{item.itemNum}}</span>
        </paper-item>
      </template>

    </paper-menu>
  </paper-header-panel>
  <paper-header-panel main class="fit">
    <paper-toolbar>
      <paper-icon-button icon="menu" paper-drawer-toggle></paper-icon-button>
      <div class="flex">Main Content</div>
    </paper-toolbar>
    <iron-pages selected="{{page}}" attr-for-selected="data-category">
      <section data-category="item1">
        <h1>Item 1</h1>
        <div>Item 1 content...</div>
      </section>
      <section data-category="item2">
        <h1>Item 2</h1>
        <div>Item 2 content...</div>
      </section>
    </iron-pages>
  </paper-header-panel>
</paper-drawer-panel>
</template>
<script>
Polymer({
  is: "my-app",
  ready: function() {
    this.names = [{itemNum: "item1", first: "John", last: "Smith"}, {itemNum: "item2", first: "Jane", last: "Doe"}];
  }
});
</script>
</dom-module>
</body>
</html>
4

1 に答える 1