2016-07-29 4 views
0

私はこの他の質問と同じ基本的な仕事、iron-selector selected={{}} binding with iron-pages selected={{}}をしようとしていますが、ソリューションを複製できないため、私のケースが異なるはずです。アイアンセレクターをアイアンページに正しくバインドする方法は?

ボタンのメニューをiron-selectorにしたいのですが、クリックするとiron-pagesの内容が変更されます。

about-buttons.htmと呼ばれるボタンメニュー用の1つのwebcomponentを持つ実際のページabout.htmを持っていて、各ページに1つのwebcomponentがあります。 about-who.htm,about-manifestoおよびabout-team

私の質問はです:

は、どのように私のWebコンポーネントのこのような構造を持つ私は私のページと私のボタンをバインドすることができます - および/または、なぜ私の現在の方法が間違っているのですか?

このような単純なデータバインディングを行うには、さまざまな方法があります。私の方法は間違いなくシンプルで、動作しません(ボタンをクリックするとページが変わりません)。だから私のabout.htmはこのようになります(これはページの人々が訪れるである)


:このスクリプトでは

  <iron-selector 
       attr-for-selected="name" 
       selected="{{buttonSelected}}" 
       fallback-selection="who" 
       class="f-column f-column_3 f-column_mobile_2"> 
       <button class="f-button-group__button" name="manifesto">Manifesto</button> 
       <button class="f-button-group__button" name="who">Who we are</button> 
       <button class="f-button-group__button" name="team">Team</button> 
      </iron-selector> 

<about-buttons selected="{{who}}"> 
    </about-buttons> 

    <about-iron-pages attr-for-selected="name" selected="{{who}}" fallback-selection="who"> 
     <about-us name="who"> 
     </about-us> 
     <about-manifesto name="manifesto"> 
     </about-manifesto> 
     <about-team name="team"> 
     </about-team>  
    </about-iron-pages> 

about-buttons.htmは、このようになります

<script> 
    Polymer({ 
    is: 'about-buttons', 
    properties: { 
     buttonSelected: { 
      type: String, 
      notify: true, 
      value: 'who' 
     } 
    } 
    }); 
</script> 

そして、ここではiron-pagesの私のバージョンです:すでに指摘したように

<dom-module id="about-iron-pages"> 
    <template> 
     <style> 
      :host { 
       display: block; 
      } 
      :host > ::content > :not(.iron-selected) { 
       display: none !important; 
      } 
     </style> 
     <content> 
     </content> 
    </template> 
    <script> 
     Polymer({ 
      is: 'about-iron-pages', 
      behaviors: [ 
      Polymer.IronResizableBehavior, 
      Polymer.IronSelectableBehavior 
      ], 

      properties: { 
      activateEvent: { 
       type: String, 
       value: null, 
      } 
      }, 
      observers: [ 
      '_selectedPageChanged(selected)' 
      ], 
      _selectedPageChanged: function(selected, old) { 
      this.async(this.notifyResize); 
      } 
     }); 
    </script> 
</dom-module> 
+0

コードにエラーがあるようです: 'buttonSelected'と' selected'プロパティ名が矛盾しています。また、単にのボタンをクリックしても、は自動的に選択されません。最後に ''要素が完全に ' 'のテンプレートにありません: –

答えて

0

<about-buttons selected="...">であなたの属性は、実際のプロパティ名と一致していません。 <about-buttons>.buttonSelectedのために、あなたの属性はbutton-selectedをする必要があり、それが働いてセレクタ(plunker)を取得するために必要なあなたのコードへの変更のみです:場合は、それ以外の

<about-buttons button-selected="{{who}}" ...> 

おそらく<about-buttons><about-iron-pages>のためのあなたの必要性をより多くのコンテキストがありますが、しかし、あなたはタブ付きビューを実装しようとしているだけで、Polymerのコンポーネントを使うことができます。 具体的には、<about-buttons>は、<paper-tabs><about-iron-pages>によって置き換えられました。<iron-pages>plunker)です。

+0

私のために働きました。ありがとう! – Japanish

関連する問題