2014-12-15 2 views
3

пытаются сделать таблицу в качестве полимерного элемента следующего выражения не похоже на работуполимерные выражений доступа к свойству по имени

 <table> 
      <thead> 
      <tr> 
       <th template repeat='{{ column in columns}}'> 
        {{column.displayName}} 
       </th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr template repeat='{{ row in data}}'> 
       <td template repeat='{{ column in columns}}'> 
       {{row[column.name]}} 
       </td> 
      </tr> 
     </tbody> 
     </table> 

, как я ожидал

{{row[column.name]}} 

column.name это имя свойства, которое я хочу получить в объекте строки, но оно дает следующее исключение для всех свойств.

NoSuchMethodError: method not found: '[]' 
Receiver: Instance of 'Product' 
Arguments: ["id"] 

Это правильный путь доступа к собственности по имени?

мой модельный ряд выглядит следующим образом

class Product extends Observable{ 
    int id; 
    String name; 
    String category; 
} 

Одна работа, вокруг которого я не люблю перегружает [] в строке класс

operator [](String fieldName){ 
    var im = reflect(this); 
    return im.getField(new Symbol(fieldName)).reflectee; 
} 

ответ

2

Это должно работать, если «строка» является карта.

+0

но что, если я не хочу использовать карту? нет работы вокруг? – user1492051

+0

Можете ли вы добавить код, показывающий, как выглядит ваша строка? Вы можете реализовать оператор [] в своей строке. –

+0

i хотя об переопределении [] в классе строк, но я еще не пробовал, поэтому его невозможно напрямую из полимерных выражений для динамического доступа к свойствам? – user1492051

Смежные вопросы