2016-03-22 4 views
1

ホスト要素のオブジェクト配列を子要素にバインドしています。子要素には、プロパティを編集するためにpaper-inputがあります。ホストのdiv要素に反映された入力値の変更は表示されません。デバッグでは、ホストオブジェクトに最新の編集があることがわかりますname。これを自動的に配線するにはどうすればよいですか?ポリマーのdom-repeatサブプロパティが子からホストへの配線を変更する

<!-- Host element --> 
<dom-module id="host-item"> 
    <template> 
      <div> 
      <div>[[selectedEmployee.name]]</div> 
       <template is="dom-repeat" items="[[employees]]" as="employee"> 
        <item-edit item="[[employee]]"></item-edit> 
       </template> 
      </div> 
    </template> 
    <script> 
    Polymer({ 
       is: 'host-item', 
       properties: {     
        selectedEmployee: { 
         type: Object 
        }, 
        employees: { 
         type: Array, 
         value = [ { name: 'Name 1'}, { name: 'Name 2'}, { name: 'Name 2'}] 
        } 
       }, 
       ready: function() { 
        this.selectedEmployee = this.employees[0]; 
       } 
      }); 
    </script> 
</dom-module> 

<!-- Child element --> 
<dom-module id="item-edit"> 
    <template> 
      <paper-input id="input" value="{{item.name}}" error-message="Invalid name!"></paper-input>    
    </template> 
    <script> 
    Polymer({ 
       is: 'item-edit', 
       properties: {     
        item: { 
         type: Object 
        } 
       } 
      }); 
    </script> 
</dom-module> 

答えて

0

2 way bindingには{{employee}}を使用してください。 [[...]]は片道用です。 プロパティ定義でnotify: trueを使用します。

子要素は親の前に定義する必要があります。

今 "従業員" のデータはオブジェクトの配列の形である:ここでは

はアップデート作業例Plunkあり、同様Plunk

<item-edit item="{{employee}}"></item-edit> 
... 
employee: { 
       type: Object, 
       notify: true, 
       value: function() { return {name: 'Test' }; } 
      } 

。 、配列を操作するためのこの質問をチェックアウト: Polymer, issue with binding array to paper slider value

Plunk

ドキュメント:Binding to array items

+0

を私の質問に編集を参照してください、私は、DOMリピートについて言及するのを忘れてしまいました。 item-editはdom-repeat内にあります。 – anivas

+0

私の答えで更新をチェックしてください。 –

+0

実際の修正箇所がある場所でスライダ・プランクから外れます。 – anivas

関連する問題