あなたが実際に複雑な何かを実装する必要はありませんが、単なるdom-if
を使用しています。プロトタイプの作業
:あなたが見ることができるようにhttp://jsbin.com/gezihatera/edit?html,console,output
は、「ビュー1は、」再選択するときは常に再スタンプされたカスタムページ要素を、使用しています。他のページは普通のdiv
要素です。これは最小限のプロトタイプであるためです。しかし、これはまた、あなたが選択したページを再選択したり、選択したりすることができないことを示しています。
本質は以下の通りです:あなたはtrue
にrestamp
属性を設定している場合dom-ifドキュメントごとに、その後、dom-if
は常にそれらの選択を解除/選択すると、あなたのページを作成して破壊します。これはコンソールで見ることができます。ここではready
の要素にsample-page ready
を表示しています。また、指定されたページが実際に選択されているかどうかを比較するのに役立つヘルパー関数_equals
を作成します。
<dom-module id="sample-app">
<template>
<style>
:host {
display: block;
}
</style>
<iron-selector selected="{{page}}" attr-for-selected="name">
<a name="view1" href="#">View One</a>
<a name="view2" href="#">View Two</a>
<a name="view3" href="#">View Three</a>
</iron-selector>
<iron-pages role="main" selected="[[page]]" attr-for-selected="name">
<template is="dom-if" if="[[_equals(page, 'view1')]]" restamp="true">
<sample-page name="view1">view1</sample-page>
</template>
<div name="view2">view2</div>
<div name="view3">view3</div>
</iron-pages>
</template>
<script>
Polymer({
is: 'sample-app',
_equals: function(a, b) {
return a == b;
},
});
</script>
</dom-module>
とサンプルページのコード:
<dom-module id="sample-page">
<template>
<style>
:host {
display: block;
}
</style>
<content></content>
</template>
<script>
Polymer({
is: 'sample-page',
ready: function() {
console.log('sample-page ready');
},
});
</script>
</dom-module>
が、これはあなたの質問を満たしていると思います。私は、アプリのコードを貼り付けてみましょう、まとめると
注:あなたはがdom-if
自体にname
属性を置くのではなく、その内容(私がやったのと同じ方法)の上にはいけません。
返信いただきありがとうございます!それは簡単だと信じることはできません –
あなたはそれのes6バージョンを提供することができますes6で動作していません – grvpanchal