Я изучаю, как создавать пользовательские директивы.Использование служебной внутренней директивы?
Моя служба выглядит следующим образом:
myApp.service('myService',function(){
this.myFunction=function(myParam){
// do something
}
});
Вот моя директива:
myApp.directive('myDirective',function(myService){
return {
restrict: 'E',
scope: {
param: '=myParam',
},
template: '<button ng-click="myService.myFunction(param)">Do action</button>',
}
});
В HTML, когда я использую <my-directive my-param="something"></my-directive>
он правильно делает, как кнопка. Однако, когда я нажимаю на него, myService.myFunction
, не выполняется.
Я полагаю, что я делаю что-то неправильно. Может ли кто-нибудь дать мне направление? Я предполагаю, что это имеет какое-то отношение к сфере действия директивы.
Это, очевидно, работает, но особенно, когда вы пишете тесты этой директивы довольно трудно проверить. Когда вы пишете всю логику в контроллере, она становится проще в обслуживании и проще тестировать. Поэтому я всегда рекомендую использовать контроллер для вашей логики вместо функции link. – Pjetr