Я разработал компонент для i18n в Polymer. На основе <iron-localstorage>
он сохраняет и изменяет локаль.Наблюдатели Кросс-DOM в Полимере
<iron-localstorage name="marvin-locale-ls"
value="{{locale}}"
on-iron-localstorage-load-empty="initializeDefaultLocale"
></iron-localstorage>
<script>
MarvinLocaleLS = Polymer({
is: 'marvin-locale-ls',
properties: {
locale: {type: String},
...
Также у меня есть компонент переводчика, который выполняет перевод на основе этого языка. Я хочу сделать что-то вроде этого:
<script>
Polymer({
is: 'marvin-translate',
ls: new MarvinLocaleLS(),
properties: {
key: {
type: String,
notify: true
},
locale: {
type: Polymer.dom().querySelector('marvin-locale-ls').properties.locale,
observer: '_localeObserver'
}
},
ready: function(){
this.key = this.textContent;
var t = this.ls.getTranslation(this.key); // get translation from Local Storage
this.textContent = (t) ? t : this.key; // show translation or key if there is no translation
},
_localeObserver: function(){
console.log('locale changed')
}
});
</script>
Другими словами я хочу создать наблюдателя в «Марвин-перевод» недвижимость в "Марвин-локали-LS. Является ли это возможным?
перейти к «marvin-translate» из локали, наблюдаемого свойства, которое регистрируется как наблюдаемое в «m-translate». см. 1.0 документов о свойствах и привязке данных. –
они находятся в разных файлах, поэтому я боюсь, что привязка не поможет – AlexNasonov
https://github.com/googlecast/cast-controller-bar-polymer/blob/master/cast-controller-bar.html видеть привязку там в [[local-media]] и обратите внимание, что 3 или 4 других файла в проекте также привязаны к тому же свойству, глобальному значению или чем-то подобному, которое передается нескольким файлам diff diff в проекте –