2017-08-31 123 views
0

紙張輸入是否支持嵌套屬性?例如,當用戶將文本輸入到紙張輸入但client.address.street當用戶將文本輸入到紙張輸入不被更新聚合物紙張輸入不會更新嵌套屬性

<paper-input label="FIRST NAME" value="{{client.name}}"></paper-input> //client object is updated 
<paper-input label="LAST NAME" value="{{client.address.street}}"></paper-input> //client object is not updated 

client.name被更新。即客戶端對象只包含{name: 'xxx}而不是{name: 'xxx', address: {street: 'abc'}}

是否有任何文檔提到上述限制或我做錯了什麼?謝謝!

回答

0

Polymer沒有提供直接綁定到數組項的方法。您必須使用polymer(如template repeaters)中的數據綁定幫助器元素作爲嵌套作用域。

使用下列方式在數據綁定與陣列交互的一個:

  • dom-repeat幫手元素可以讓你創建一個模板的實例陣列中的每個項目。在dom-repeat實例中,可以綁定到數組項目的屬性。

    <dom-repeat items="{{client}}" as="client"> 
        <template> 
        <paper-input label="FIRST NAME" value="{{client.name}}"></paper-input> 
        <paper-input label="LAST NAME" value="{{client.address.street}}"></paper-input> 
        </template> 
    </dom-repeat> 
    
  • iron-list顯示虛擬, '無限' 列表中。 iron-list元素中的模板表示爲每個列表項目創建的DOM。

    <iron-list items="{{client}}" as="client"> 
        <template> 
         <paper-input label="FIRST NAME" value="{{client.name}}"></paper-input>  
         <paper-input label="LAST NAME" value="{{client.address.street}}"></paper-input> 
        </template> 
    </iron-list> 
    

如果初始化即,使用的功能的對象或數組值的屬性,則其確保每個元件得到它自己的值的拷貝,而不是在所有實例共享的對象或陣列的元素。你不必給用戶的輔助元素如上:

client: { 
    type: Object, 
    value: function() { 
      return { 
      "name": "", 
      "address": { 
       "street": "" 
      } 
      }; 
     } 
} 

Demo

+0

感謝。但是,當用戶將值輸入到紙張輸入時,{{client.address.street}}不會更新。我試圖理解爲什麼發生。 – user3240644

+0

我沒有機會嘗試提供的附加演示。重擊者並沒有渲染......對於聚合物元素而言,jsbin看起來是一樣的。多吉克問題? – user3240644

+0

謝謝。我終於得到了你所創造的榨汁機的測試。它確實有效。因此,如果我只有一組非重複輸入,將它列入鐵名單或重複單詞中不是一個過分的問題? – user3240644