Рассмотрим следующий использование пользовательского полимерного элементаПолимер связывания данных и Immutable.js вместе
<app-header bar-foo="[[abc.def.ghi]]" app-title="[[appTitle]]"></app-header>
Здесь я связать две переменные для пользовательского элемента app-header
. Теперь, когда я хочу, чтобы обновить значения, вы могли бы ожидать, чтобы сделать это следующим образом (в родителе app-header
!):
this.abc.def.ghi = 10;
this.appTitle = 'New title';
Однако, это только обновляет appTitle
не abc.def.ghi
. Для того чтобы обновить это значение, а вам нужно сделать это следующим образом:
this.abc = {def: {ghi: 10}};
Если кто-то знает, почему это, пожалуйста, дайте мне знать !!
В любом случае, из-за этого, я хотел бы использовать Immutable
! Однако, это вводит некоторые проблемы с тем, как данные связываются с настраиваемыми элементами
Вот пример фрагмента:
<dom-module id="my-app">
<template>
<app-header hits="[[state.get('page').get('hits')]]"></app-header>
</template>
<script>
(function() {
class MyApp {
beforeRegister() {
this.is = 'my-app';
this.properties = {
state: {
type: Object,
notify: true,
value: Immutable.Map({
page: Immutable.Map({hits: 10})
})
}
};
}
}
Polymer(MyApp);
})();
</script>
</dom-module>
Таким образом, проблема возникает, когда привязки данных к элементу:
<app-header hits="[[state.get('page').get('hits')]]"></app-header>
Является ли что-то вроде этого даже возможным, или я делаю что-то еще совершенно неправильно?