В директиве мы можем определить изолята рамки так, что он может быть использован повторноInit анонимной функция директивы, например
var app = angular.module('myModule',[])
.directive('btn',[function(){
return {
...,
scope:{}
}
}]);
В использовании, он может создать отдельный экземпляр.
<scope>
<btn></btn>
<btn></btn>
</scope>
Однако, если <btn>
имеет такие события, как «щелчок», «зависать» и т.д., и те события должны быть определены в рамках или контроллера в самом первом начале. Если у меня много <btn>
, и они размещаются в разных файлах, я должен определить столько обработчиков, сколько числа <btn>
в одном файле. Это означает, что на странице приходится загружать множество ненужных функций.
Есть ли способ, который может позволить мне инициализировать экземпляр директивы, чтобы он мог принять анонимную функцию, чтобы стать ее обработчиком, прежде чем он отобразит это направление. Нравится:
<scope>
<btn>this_btn.click=function(){alert(1)}</btn>
<btn>this_btn.hover=function(){alert(0)}</btn>
<scope>
здесь ничего не мешает использовать собственные директивы как 'нг-click', то есть' <БТН нг-клик = ""> '. Вы пытались использовать их? – user2943490
Да, я знаю это, но проблема такая же. Для использования ng-click мне все равно необходимо определить функцию в начале в директиве или области. однако, как только я определяю конкретную функцию в директиве, ее больше нельзя использовать повторно. – panda
Если конкретная функция должна быть разделена между несколькими директивами, эта функция должна быть в службе и вводиться в соответствующие ей директивы. Его не нужно определять в директиве или в области. – user2943490