Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Polymer: how to dynamically import an element

Can anyone tell me how I could import an element depending on the value of a Polymer attribute? I thought I could use data binding but... It's not working. Is it possible to import an element dynamically?

code exemple here:

<link rel="import" href="app-window/{{name}}-app.html"> 
//This was my first idea (obviously doesn't work)


<polymer-element name="window-base" attributes="name" >
    <template>
        <link rel="stylesheet" href="window-base.css">
        <section id="app">
            <!--here will go the instance-->
        </section>
    </template>
    <script>
        Polymer('window-base', {
            name: "Finder",
            ready: function () {
                this.instanceApp();
            },
            instanceApp: function () {
            //this depends on the import made
                var app=document.createElement(this.name + "-app");
                this.$.app.appendChild(app);    
            }
        });
    </script>
</polymer-element>

Thanks!

like image 426
iroyo Avatar asked Dec 07 '22 02:12

iroyo


1 Answers

according to the Polymer 1.0 migration guide:

The global Polymer.import function is replaced by importHref. The new method can be invoked from an element as this.importHref. Outside an element, it can be called as as Polymer.Base.importHref.

So...

this.importHref(["yourComponent.html"], function() {})
like image 166
e.w. parris Avatar answered Dec 17 '22 16:12

e.w. parris