2016-04-02 6 views
0

Ich versuche, ein benutzerdefiniertes Element für die Wiederverwendung zu erstellen. Was ich habe, sind Daten, die aus drei Attributen bestehen, die auf der jeweiligen Seite angezeigt werden, abhängig von dem Link, auf den Sie klicken.Polymer-Display-Inhalt basierend auf URL

Ich benutze die Polymer Starter Kit. Grundsätzlich möchte ich eine Seite mit Informationen haben, die sich je nach URL ändert. Ich habe eine Liste von Programmen auf einer Seite mit Links zu ihren jeweiligen Seiten. Bisher habe ich dies:

In meinem index.html habe ich einen Abschnitt, der wie folgt aussieht:

<section data-route="programs"> 
<paper-material elevation="1"> 
<h1>Programs</h1> 
<a href$="{{baseUrl}}programs/firstprogram">Program 1</a></br> 
<a href$="{{baseUrl}}programs/secondprogram">Program 2</a></br> 
<a href$="{{baseUrl}}programs/thirdprogram">Program 3</a></br> 
</paper-material> 
</section> 

Dann habe ich ein eigenes Element, Programm-Info, die

sieht wie folgt aus
<dom-module id="program-info"> 
    <template> 
    <h2 class="page-title">{{program.name}}</h2> 
    <p>{{program.price}}</p> 
    <p>{{program.description}}</p> 
    </template> 
    <script> 
    (function() { 
     'use strict'; 
     Polymer({ 
     is: 'program-info' 
     }); 
    })(); 
    </script> 
</dom-module> 

Basierend auf dem Programm, das geklickt wurde, möchte ich Daten greifen und sie in meinem benutzerdefinierten Element (Name, Preis, Beschreibung) verwenden. Ich habe darüber nachgedacht, es in ein Array zu setzen, da es nur sieben Programme gibt, aber ich weiß nicht, wie man das richtige Element im Array basierend auf der URL findet.

Irgendwelche Gedanken?

+0

Vielleicht https://elements.polymer-project.org/elements/carbon-route tut, was Sie wollen –

+0

Ich habe darüber geschaut, es scheint nicht zu. – user1795832

Antwort

1

Wenn Sie tatsächlich PSK verwenden, werfen Sie einen Blick auf den Abschnitt/Seite user-info in app/index.html. Es zeigt Informationen über einen Benutzer basierend auf dem Namen an, der aus der URL abgerufen wurde.

Natürlich sollten Sie sich auch die Routing-Konfiguration in app/elements/routing.html ansehen, um herauszufinden, wie der Name aus der URL abgerufen und auf die Variable params gesetzt wird.

Dann sollten Sie Ihre Route programs hinzufügen/ändern, um Ihre Bedürfnisse zu erfüllen.

Edit:

Sie können einen ähnlichen Ansatz in dieser Beispielanwendung sehen: Die data is fetch wenn die route changes und dann set to an article property im Rahmen der blog-app element ist. In diesem Element ist die Eigenschaft article selbst an die similarly named property of the "page element" article-detail gebunden, die dafür zuständig ist, den Inhalt des Artikels anzuzeigen, der zuvor über das Netzwerk abgerufen wurde.

+0

Richtig, das ist einfach genug, aber nicht ganz das, wonach ich suche. Auf der Benutzer-Info-Seite wird nur der Name des Benutzers basierend auf der URL angezeigt. Ich muss darüber hinausgehen und zusätzliche Daten basierend auf der URL anzeigen. Nehmen wir zum Beispiel die Benutzerinfo, sagen wir, dass ich auch das Alter und den Beruf des Benutzers anzeigen möchte. Ich werde diese Informationen in einer JSON-Datei oder einem Array speichern, aber letztendlich müssen diese Informationen basierend auf dem Benutzer abgerufen werden. Alle PSK verwendet nur den Namen von der URL, sonst nichts. – user1795832

+0

Haben Sie jede Seite zu einem Element extrahiert? Wenn ja, können Sie einfach Änderungen an dieser 'params'-Eigenschaft beobachten, testen, ob Ihre Seite tatsächlich die ausgewählte ist, und die benötigten Daten von Ihrem Array holen, oder JSON mit' iron-ajax' –

+0

Ich habe das gerade gefunden, denke Sie sprechen über @ Vincent Guillou? http://polymerlabs.github.io/app-layout/templates/publishing/#/art/list – user1795832