Я пытаюсь выяснить, что происходит с поведением Polymer. В частности, я использую поведение app-localize. Из того, что я могу собрать, свойства разделяются, если значение не определено как функция.Свойства поведения постороннего полимера
Я добавил приложение-локализовать поведение к двум элементам. У меня есть поля ввода, связанные с языковым свойством в app-localize-behavior, чтобы проверить изменение свойства. Поэтому в элементе 1 я изменяю свойство на en, и перевод в этом элементе работает, но элемент 2 ничего не делает. Я меняю язык через ввод на элементе 2, а затем это отлично.
Что я не могу понять, так я думал, поскольку свойство находилось в поведении, а затем изменение свойства в одном элементе изменило другой элемент.
Кажется немного бесполезным иметь поведение локализации приложения, которое не отражает некоторые глобальные настройки, но множество локальных настроек для языка.
Вот код, используемый в обоих элементах.
<link rel="import" href="../bower_components/app-localize-behavior/app-localize-behavior.html">
...
<input is="iron-input" bind-value="{{language}}">
<h1>{{localize('Matters')}}</h1>
...
behaviors: [
Polymer.AppLocalizeBehavior
],
properties: {
resources: {
value: function() {
return {
'en': { 'Matters': 'English Matter'},
'fr': { 'Matters': 'French Matter'}
}
}
}
},
...
Может ли кто-нибудь помочь?
Я надеялся, что я не должен был бы пройти через настройки языка с помощью атрибутов потенциально многие, многие элементы. Но похоже, что этот подход необходим. Я полагаю, что мое понимание свойств в поведении неправильное? –
Я обновил свой предыдущий ответ; пожалуйста, если это было полезно. –
@Joel, спасибо за этот совет, после нескольких часов поиска я нашел это - что позволило мне иметь языковой коммутатор в заголовке приложения, который также переключил язык во взглядах. Есть одна вещь, которая меня беспокоит, однако в каждом представлении, на каждой странице) требуется следующее: . this.loadResources (this.resolveUrl ('../ locales.json')); Несомненно, это неэффективно, и это также дублирование кода? Я пытался оставить его, но он не работает. – boran