Я собираюсь немного серым здесь, пытаясь понять, как можно использовать несколько шаблонов в одном компоненте Polymer и разрешать определенный шаблон на основе атрибута.Polymer: несколько шаблонов для одного и того же компонента, основанного на атрибуте?
Вот сценарий:
Компонент
<dom-module id="py-test">
<template>
Foo
</template>
<template>
Bar
</template>
<script>
Polymer({
is: "py-test"
})
</script>
</dom-module>
Markup
<py-test bar></py-test>
Ожидаемый результат Если <py-test></py-test>
имеет атрибут бара, в компонент должен использовать второй шаблон. В противном случае он должен использовать первый шаблон.
Кто-нибудь знает, как победить Полимер в подчинении?
// Редактировать
Мария отметила, дом-если в качестве возможного решения. Какая работа. Я использовал пример выше, чтобы добавить РОМ, если проверки:
<dom-module id="py-test">
<template>
<template is="dom-if" if="[[foo]]">
Foo
</template>
<template is="dom-if" if="[[bar]]">
Bar
</template>
</template>
<script>
Polymer({
is: "py-test",
properties: {
foo: {
type: Boolean,
value: true
},
bar: {
type: Boolean,
value: false
}
}
})
</script>
</dom-module>
Но я не понимаю, как я могу связать это с атрибутами, установленных на самых <py-test>
элемента.
Использовал бы опцию 'dom-if'? – Maria
@Maria Это похоже на работу с dom-if, в том смысле, что я могу переключаться между шаблонами, проверяя правдивость конкретной функции. Но это не очень помогает, потому что я не вижу, как я могу связать эти логические результаты с конкретными атрибутами, установленными в элементе разметки. Есть идеи? –
Возможно, это то, что вы ищете [железо-ленивые страницы] (https://github.com/TimvdLippe/iron-lazy-pages). Используйте поведение Polymer.Templatizer для штампа вашего шаблона на основе атрибута –