Angulaire: pour Lier la fonction de rappel à l'aide de & et de les passer en arguments
J'ai un (simplifié) de la directive
angular.module('myApp')
.directive('myButton', function () {
return {
restrict: 'E',
scope: {
callbackFn: '&'
},
template: '<button ng-click=ca;;backFn($evenb)'
}
});
Maintenant, dans certains contrôleur de parent, j'ai défini une fonction de rappel:
this.myCallback = function ($event) {
this.doIt($event);
}
et le code HTML:
<my-button callback-fn="page.myCallback()"></my-button>
(Je suis en utilisant des choses comme bindToController
et controllerAs
)
Le problème est que le $event
est jamais passé à myCallback
, qui a probablement à voir avec la façon dont je la lie de cette fonction (&
). Mais d'un autre côté, à l'intérieur de myCallback
je voudrais utiliser this
.
Est-il un moyen de résoudre ce problème ? sans faire les choses comme
var self = this;
this.myCallback = function ($event) {
self.doIt($event);
}
OriginalL'auteur Jeanluca Scaljeri | 2015-10-21
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas complètement définir vos fixations correctement. Vous pouvez passer de nouveau les arguments de la directive pour le contrôleur de parent par l'intermédiaire d'une clé-valeur de la carte. Selon le angulaire docs (l'emphase est mienne):
Ce qui signifie que dans votre consommation HTML, il faut ajouter des paramètres:
Puis dans la directive:
OriginalL'auteur ryanyuyu
Selon moi, vous devriez faire de cette façon :
Dans votre page HTML :
Dans votre directive :
Mais je ne suis pas sur ce qui est le point de votre question.
OriginalL'auteur Tako