Edit : corrected the foo method.
Je suis un junior AngularJS, et je luttais avec cela. J'utilise une directive avec des méthodes de prototypage, et j'aimerais en émettre un même à l'intérieur, mais je n'ai pas réussi à le faire fonctionner jusqu'à présent.
angular.module('myModule')
.directive('myDirective', function() {
return {
transclude: true,
scope: {
},
bindToController: true,
controller: MyController,
controllerAs: 'myCtrl',
templateUrl: 'template/myTemplate.html'
};
}
);
Ensuite, j'ai le contrôleur qui ressemble à ceci. Il semble que j'ai raté l'injection $ scope, car elle n'est pas définie.
Quelqu'un pourrait-il me dire ce que j'ai fait de mal? Ce serait grandement apprécié!
Le code du contrôleur n'a pas de sens. Qu'est-ce que 'StepperCtrl' et quel est le lien avec le code du contrôleur? – georgeawg
Je recommande d'isoler les directives de portée évitez d'utiliser $ emit pour communiquer des événements. Au lieu de cela, communiquez les événements avec l'expression '&' binding. – georgeawg
Vous montrez MyController comme constructeur, puis une méthode prototype de StepperCtrl. Est-ce une faute de frappe? Si c'est le cas et que vous vouliez utiliser 'MyController.prototype.foo' alors vous pouvez simplement faire ceci: $ scope. $ Emit' dans la méthode prototype parce que vous avez déjà défini' this. $ Scope' dans le constructeur. – Adam