2015-07-01 2 views
1

Я знаю, что в угловом существует нечто, называемое $ rootScope. Он содержит переменные, которые будут использоваться всеми контроллерами. Я ищу что-то подобное для Polymer, так что мне не нужно передавать родительскую переменную в качестве атрибутов всегда.

Прямо сейчас я делаю что-то похожее на это:

индекс HTML код:

<body> 
    <my-parent-component some-attribute="hello"></my-parent-component> 
</body> 

родительский HTML код:

<my-parent-component> 
    <template> 
    <p>someAttribuet could be used by parent: {{someAttribute}}</p> 
    <my-child-component some-attribute="{{someAttribute}}"></my-child> 
    </template> 
</my-parent-component> 

родительский дротик код:

class MyParentComponent extends PolymerElement { 
    @published var someAttribute; 
} 

ребенок html cod е:

<my-child-component> 
    <template> 
    <p>some Attribute used here: {{someAttribute}}</p> 
    </template> 
</my-child-component> 

ребенок код дротик:

class MyChildComponent extends PolymerElement { 
    @published var someAttribute; 
} 

Другими словами, я не уверен, передавая атрибут весь путь вниз от верхнего родителя до самого низкого ребенка. Я думаю, что это нехорошо, и я хотел бы сделать это с чем-то похожим на $ rootScope в угловом.

+0

Вы можете использовать глобальные переменные, как описано здесь http://stackoverflow.com/a/29864797/217408 –

ответ

3

Полимер не имеет корневой области. В Polymer есть только элемент и возможно родительские элементы или дочерние элементы, которые вы можете ссылаться в своем выражении. Более общим решением являются глобальные переменные или элемент глобализации, как описано здесь. https://stackoverflow.com/a/29864797/217408