2017-10-19 23 views
1

Récemment j'ai regardé Polymers app-localize-behavior et j'ai vu qu'ils tapés la méthode localize() comme Function (voir sur GitHub):Polymère: appelle la fonction de propriété d'un comportement dans les valeurs de propriété des éléments?

extrait

de app-localize-behavior.html:

localize: { 
    type: Function, 
    computed: '__computeLocalize(language, resources, formats)' 
}, 

Cette méthode fonctionne parfaitement bien dans les données-liaisons, comme <div>{{localize('welcome')}}</div>, mais comment puis-je appeler cette méthode à partir de mes propriétés d'éléments? J'essaie de faire quelque chose comme:

extrait

de my-element.html:

properties: { 
    _pageTitle: { 
     type: String, 
     value: this.localize('welcome') 
    } 
} 

Mais quand j'essaie, je reçois un Uncaught TypeError: this.localize is not a function. Même dans ma méthode ready, je dois appeler this.localize de manière asynchrone, sinon elle n'est pas non plus définie.

Comment pourrais-je résoudre ce problème?

Merci d'avance!

Répondre

2

Utilisez un computed property qui invoque localize(...):

properties: { 
    _pageTitle: { 
    computed: 'localize("welcome")' 
    } 
} 

demo

+0

Impressionnant. Mais: il y a d'autres propriétés que j'ai besoin de localiser, mais ce ne sont pas des chaînes mais des objets. Une chance de calculer cela? Ils devraient retourner un objet JSON – sebastian