I would suggest using Polymer's importHref method... since it handles
things similarly to the link rel="import" ... I suspect you're not actually
getting things parsed how you think you are with this method.

-Karl Tiedt

On Thu, Jul 14, 2016 at 8:51 AM, Ádám Liszkai <[email protected]> wrote:

> Here is my situation: I have an app shell and have controller classes to
> load templates which have custom polymer elements in it. So far I load the
> template and add to the DOM and everything is work fine for first sight.
> After the template contents are added to the DOM I try to access to the
> custom-element methods but I could not access to it. If I try to debug the
> code and run the important steps in console then I can acces to the element
> methods.
>
> *My Element:*
>
>     <link rel="import" href="../../components/polymer/polymer.html" />
>     <dom-module is="app-login">
>     <template>
>         <style>
>            :host { display: block; }
>            :host.hide { display: none; }
>         </style>
>         <div> samle content </div>
>     </template>
>     <script>
>     Polymer({
>         is: 'app-login',
>         run: function() {
>             return new Promise(function(resolve, reject) {
>                 resolve({'id':0,'name':'user'});
>             });
>         }
>     });
>     </script>
>     </dom-module>
>
> *My Program:*
>
>     // [...]
>
>     // this works fine, I just add for better understanding
>     getTemplate( templateName ) {
>         return new Promise(function(resolve, reject)
>         {
>             fetch( 'templates/'+templateName+'.html' ).then(response => {
>                 document.getElementById('templates').innerHTML += response
> .text();
>                 resolve(response);
>             }).catch(error => { reject(error); });
>         });
>     };
>     // [...]
>     // this method called by the main program and cant't access to the
> element methods
>     doLogin() {
>         this.getTemplate('login').then(templateResponse => {
>             let Login = document.querySelector('app-login'); //
> <app-login>...</app-login>
>             Login.run(); // TypeError: Login.run is not a function
>         });
>     };
>     // [...]
>
> *templates/login.html:*
>
>     <link rel="import" href="elements/app-login/app-login.html" />
>     <app-login></app-login>
>
> *Console debugging:*
>
>     let Login = document.querySelector('app-login');
>     //Return: <app-login>...</app-login>
>     Login.run();
>     //Return: Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]:
> undefined}
>
> I tried search for this but I could not find any relevant answer yet,
> somebody solved this issue in some way before? Did I make something just
> bad?
>
> *Already tried:*
>  - setTimeout (300ms) after adding element to the DOM » same result
>  - adding _ to the method name (like paper elements methods) » same result
>  - waiting for WebComponentsReady event after inserting the element into
> the DOM » event not fired, the program stopped
>
> Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/aedc791c-3e32-425e-b9ff-4cd6e71aac81%40googlegroups.com
> <https://groups.google.com/d/msgid/polymer-dev/aedc791c-3e32-425e-b9ff-4cd6e71aac81%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CADNgbTGjXJs4xX5pTTwwhmDrAvWv2u4w2nJtMyg3b%3D8Zmww%2B6A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to