2016-01-18 2 views
2

У меня есть страница, где я привязываю массив к полям ввода. Похоже, что привязка данных работает несколько странно.Проблема с привязкой данных в шаблонах Polymer

Пожалуйста, посмотрите на пример ниже

<!doctype html> 
<html> 
<head> 
    <script src='bower_components/webcomponentsjs/webcomponents-lite.js'></script> 
    <link rel='import' href='bower_components/polymer/polymer.html'> 
    <link rel='import' href='bower_components/paper-input/paper-input.html'> 
</head> 
<body unresolved> 
    <dom-module id='base-page'> 
     <template> 
      <template is='dom-repeat' as='cell' items='{{data}}'> 
       <paper-input value='{{cell}}'></paper-input> 
      </template> 
     </template> 
    </dom-module> 
    <script> 
     Polymer({ 
      is: 'base-page', 

      properties: { 
       data: { 
        type: Array, 
        value: function() { 
         return [0,0] 
        } 
       } 
      } 

     }); 
    </script> 
    <base-page></base-page> 
</body> 

Если я редактировать содержимое во второй бумажной ввода, изменения данных в обоих. Если я, однако, инициализирую свой массив данных, например, [0, 1], то ячейки, по-видимому, выглядят по-разному, и, следовательно, они могут различать ячейки и привязку данных, похоже, работают. В чем проблема ?, но что более важно, как я могу заставить его работать?

Приветствия и спасибо :-)

ответ

1

AFAIK простые числа не работают хорошо в массивах. Особенно здесь, когда Полимер не может отличить их отдельно, если они имеют одинаковую ценность.

Заверните их в объектах, как

return [{value: 0}, {value: 0}] 

, а затем использовать его как

<paper-input value='{{cell.value}}'></paper-input> 
+0

Hi Гюнтера. Спасибо, что ответили. Я не уверен, что понимаю. Можете ли вы продемонстрировать это в http://jsbin.com/vekovisacu/1/edit?html,output? –