Недавно я начал работать с Polymer 2.0, и до сих пор я в нее влюблен. Я привык к Angular в сочетании с машинописным текстом, и мне нравится, как легко было определять глобальные переменные.
Требуемый результат: пусть говорят, что у меня есть переменная с именем: "Username" на странице входа. Имя пользователя var в настоящее время "Гость", поэтому на моей странице приветствия у меня есть сообщение "Привет Гость!". Имя пользователя на странице входа изменится с guest => not-a-guest. Приветственная страница теперь говорит: "Привет, не гость!".
Есть ли способ сделать это без передачи переменной? Поскольку каждый раз, когда я хочу использовать свойство username, мне нужно передать имя пользователя, как указано выше. (поэтому, если мне нужно имя пользователя в дочернем дочернем компоненте дочернего компонента, теперь я должен передать имя пользователя всем родителям). Теперь, конечно, это касается пользователя, поэтому в этом случае localstorage/sessionstorage будет в порядке, но это всего лишь пример. Я бы хотел использовать глобальное определение для чего-то другого, и сохранение этого в localstorage не было бы идеальным.
Я нашел много решений Polymer 1, но мне бы хотелось, чтобы мое приложение было полностью Polymer 2.0.
Благодаря тонну!
Я подумал и сделал себе веб-компонент. использование:
// 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>
Один из вариантов - использовать класс mixin и расширить его в любом компоненте, в котором вы нуждаетесь. Подробнее читайте здесь.
Существует элемент iron-meta
который можно использовать для создания того, что вы создали.