2015-08-07 15 views
5

Lets sagen, dass ich die Demo-Implementierung von iron-pages habe (von seinem Github page):Polymer - Änderung Seitentitel mit Eisen-Seiten

<iron-pages selected="0"> 
    <div>One</div> 
    <div>Two</div> 
    <div>Three</div> 
</iron-pages> 

<script> 
    document.addEventListener('click', function(e) { 
    var pages = document.querySelector('iron-pages'); 
    pages.selectNext(); 
    }); 
</script> 

Nun, ich mag ein Suffix des Seitentitel hinzufügen die ausgewählten widerzuspiegeln Seite. Also für <div>One</div> möchte ich anhängen - selected One und so weiter.

Was ich bisher habe ist die Änderung in routing.html, wenn die Route ausgewählt wurde, aber es scheint ein bisschen seltsam, die Änderung hier zu machen. Gibt es andere Möglichkeiten, dies zu tun?

+0

Sollte klarstellen, dass dies das Polymer-Starter-Kit verwendet. – Insectatorious

Antwort

6

Sie sollten <page-title> hier einen Blick auf meine Polymerkomponente nehmen: https://github.com/zacharytamas/page-title/. Sie können es mit Bower, installieren:

bower install page-title --save 

wahrscheinlich, dass Sie irgendeine Art von Funktion wollen würde, die den ausgewählten Index aus <iron-pages> Karten in Text Sie als Titel angezeigt werden sollen. In Ihrem Beispiel könnten Sie nur die innerText des ausgewählten Elements, aber in der Praxis Ihre <iron-pages> Elemente würden tatsächlich Inhalt in ihnen haben.

Dies wird von Ihrem Setup ab, sondern Sie meine Komponente sie leicht binden so etwas wie dies nutzen könnten,: den Titel der Seite der title

<dom-module id="my-app"> 
    <template> 

    <page-title base-title="My Website" 
     title="[[selectedPage.title]]"></page-title> 

    <iron-pages selected-item="{{selectedPage}}"> 
     <div title="First Page">One</div> 
     <div title="Second Page">Two</div> 
     <div title="Third Page">Three</div> 
    </iron-pages> 

    </template> 
    <script> 
    Polymer({ 
     is: 'my-app' 
    }); 
    </script> 
</dom-module> 

Hier habe ich nur einige fanciness getan habe zu binden Attribut des aktuell ausgewählten Elements aus <iron-pages>. Es funktioniert ziemlich gut! Sie müssen sich vielleicht an Ihre Situation anpassen, aber das sollte Sie weiterbringen.

+0

Haben Sie eine Seite mit einem Beispiel, wo Sie die Attrs binden? Oder ein Beispiel? – HerberthObregon

0

Der Wert Ihrer Titelelement eine berechnete Eigenschaft basierend auf dem Wert von {{ausgewählt}}, dh sein kann:

<myTitle text={{title}} currentSelection={{selected}}></myTitle> 

// deklarative Teil des Elements

<dom-module id="myTitle"> 
<template> 
    <div>{{title}}</div> 
</template> 
</dom-module> 

// Imperativ Teil

Polymer({ 

is: 'myTitle', 

properties: { 
    title: { 
     type: String, 
     computed: 'generateTitle' 
    }, 

    currentSelection: { 
     type: Number 
    } 
}, 

'generateTitle': function(){ 
    return '- selected' + this.currentSelection; 
} 

}); 
+0

Ich bekomme dieses Konzept, aber was ist mit dem vorhandenen '' Tag? – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/281089/">Insectatorious</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">Ich denke, Polymer 1.0 ermöglicht es Ihnen, native HTML-Elemente zu erweitern, so dass Sie den Tag "<title>" als Basis verwenden und Funktionalität von dort hinzufügen können: [link] (https://www.polymer-project.org/1.0/docs /devguide/registering-elements.html#type-extension) – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2368571/">ManGI1</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048381"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Letzte Frage </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.uwenku.com/question/p-swbrojon-bw.html" target="_blank" title="Kalender (GridView) mit Monats-Header (Google HeaderView)"> Kalender (GridView) mit Monats-Header (Google HeaderView) </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.uwenku.com/question/p-cmkgfecb-bq.html" target="_blank" title="Was ist der beste Weg, um die Wörterbücher Wert in der Liste zu filtern und entfernen Sie das Wörterbuch aus der Liste"> Was ist der beste Weg, um die Wörterbücher Wert in der Liste zu filtern und entfernen Sie das Wörterbuch aus der Liste </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.uwenku.com/question/p-txwxfhvh-br.html" target="_blank" title="Dynamische Karussellanzeigen für Banner Rotator"> Dynamische Karussellanzeigen für Banner Rotator </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.uwenku.com/question/p-qurgiusu-bs.html" target="_blank" title="Viewpager rastet nach dem Fotografieren auf der falschen Seite ein"> Viewpager rastet nach dem Fotografieren auf der falschen Seite ein </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.uwenku.com/question/p-epdeooqg-bm.html" target="_blank" title="Nur zukünftige Daten mit PHP strtotime()"> Nur zukünftige Daten mit PHP strtotime() </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.uwenku.com/question/p-caqgbstm-be.html" target="_blank" title="Die ArrayList-Werte in TextVitew anzeigen"> Die ArrayList-Werte in TextVitew anzeigen </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.uwenku.com/question/p-kqvzlsak-bg.html" target="_blank" title="android get mssql Textspalte Textview als formatiert"> android get mssql Textspalte Textview als formatiert </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.uwenku.com/question/p-shbitdcb-bc.html" target="_blank" title="Matching Teil der URL und umleiten"> Matching Teil der URL und umleiten </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.uwenku.com/question/p-nixqzcas-bd.html" target="_blank" title="Vim: Modus Dollarzeichen in Einsatz Remap"> Vim: Modus Dollarzeichen in Einsatz Remap </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.uwenku.com/question/p-xfrkpinw-ba.html" target="_blank" title="Zeigen Sie die durchschnittliche Differenz zwischen zwei Zeitfeldern als MM: SS in SQL"> Zeigen Sie die durchschnittliche Differenz zwischen zwei Zeitfeldern als MM: SS in SQL </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Verwandte Themen</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item">Keine verwandten Themen^_^</li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://de.uwenku.com/contact">Sprechen Sie uns an</a></li> <li>© 2020 DE.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>