En polymère 1,0 I ont un script de comportement qui définit les propriétés et méthodes:Comment appeler la méthode du comportement par défaut dans Polymer 1.0?
<script>
dataBehavior = {
properties: {
data: {
type: Array,
value: null,
observer: 'dataChanged'
}
},
dataChanged: function(newValue, oldValue) {
console.log('default stuff');
}
};
</script>
et un des composants qui utilise le comportement:
<dom-module id="my-module">
<template>
</template>
<script>
Polymer({
is: "my-module",
behaviors: [dataBehavior],
dataChanged: function(newValue, oldValue) {
// How to call the dataChanged method from dataBehavior?
// this.super.dataChanged(); <- don't works!
console.log('custom stuff');
}
});
</script>
</dom-module>
Lorsque je modifie la propriété de données, le procédé qui a été exécuté est de my-module, donc ça fait "trucs personnalisés". Si je supprime la méthode dataChanged dans my-module, elle exécute "stuff par défaut". Comment puis-je exécuter la méthode du comportement par défaut et la méthode du composant?
Si c'est possible, je ne souhaite pas copier le code de "dataBehavior.dataChanged" vers "my-module.dataChanged". Je voudrais appeler la méthode du comportement à l'intérieur de la méthode du composant; puis-je utiliser quelque chose comme "super" pour renvoyer le script de comportement?
Merci beaucoup pour les réponses!
C'est un autre bon moyen d'appeler la méthode dans le fichier de comportement et c'est mieux s'il y a un dom-module qui utilise deux comportements avec les mêmes méthodes de nom.J'ai vérifié que, dans ce cas, la méthode a été appelée est celle du dernier comportement appelé. Exemple: deux comportements [behavior1, behavior2] avec la même méthode "load". La méthode qui s'est appelée est behavior2.load(). Avec behavior1.load.call (this, ...) est possible d'appeler la méthode préférée. – Rancid
@Rancid J'irais aussi loin que de changer la réponse acceptée à celle-ci, puisqu'elle donne réellement une réponse directe à votre question, pas de solution de rechange nécessaire. – craPkit