Полимер 2 определяет глобальные переменные

Недавно я начал работать с Polymer 2.0, и пока он мне очень нравится. Я привык к Angular в сочетании с машинописным текстом, и мне понравилось, как легко было определять глобальные переменные.

Желаемый результат: допустим, у меня есть переменная с именем: «Имя пользователя» на странице входа. Имя пользователя var в настоящее время «Гость», поэтому на моей странице приветствия у меня есть сообщение «Привет, Гость!». Имя пользователя на странице входа меняется с guest => not-a-guest На приветственной странице теперь написано: Hello not-a-guest!".

Есть ли способ сделать это без передачи переменной типа ? Потому что каждый раз, когда я хочу использовать свойство имени пользователя, теперь мне нужно передать имя пользователя, как указано выше. (поэтому, если мне нужно имя пользователя в дочернем элементе дочернего компонента, теперь мне нужно передать имя пользователя всем родителям). Теперь, конечно, речь идет о пользователе, поэтому в данном случае localstorage/sessionstorage подойдет, но это всего лишь пример. Я хотел бы использовать глобальное определение для чего-то другого, и сохранение этого в локальном хранилище было бы не идеальным.

Я нашел много решений для Polymer 1, но мне бы хотелось, чтобы мое приложение было в полной версии Polymer 2.0.

Благодаря тонну!


person Siebren K.    schedule 25.10.2017    source источник


Ответы (3)


Я решил сам создать веб-компонент. Применение:

// Login component
// Define global variable
<brum-global-var key="username" value="{{username}}"></global-variable>

// welcome-page 
// Use global variable
<brum-global-var key="username" value="{{username}}" readonly></global-variable>
person Siebren K.    schedule 25.10.2017

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

person Arnau    schedule 25.10.2017

Существует элемент iron-meta, который можно использовать для делать именно то, что вы создали.

person Caribouflex    schedule 26.10.2017