Как определить функцию внутри директивы Angular-js
Я создал директиву для выбора пользователей, используя выпадающий элемент начальной загрузки. следующее.
Javascript
app.directive('usersDropdown', function(ConfigService,$http) {
return {
templateUrl: 'app/views/users_dropdown.html',
link: function($scope, element, attrs) {
});
};
});
users_dropdown.html
<div class="btn-group pull-right" >
<a class="btn dropdown-toggle" data-toggle="dropdown" href="">
Select User
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right align-left" role="menu" aria-labelledby="dropdownMenu">
<li ng-repeat = "userList in userLists"><a ng-click="getUserDetails('{{userList.SessionId}}')" style="cursor:pointer">{{userList.UserPartyName}}</a></li>
<li ng-hide="userLists" style="cursor:pointer"><a>No Users</a></li>
</ul>
</div>
Мне нужно создать функциюgetUserDetails
, который должен вызываться при нажатии на пользователя из списка. У меня вопрос, как определить эту функцию внутри самой директивы? Я написал это в контроллере. Но проблема в том, что у меня несколько контроллеров. Не рекомендуется писать одну и ту же функцию на всех контроллерах. Если я смогу написать функцию, общую для всех контроллеров, то есть внутри директивы, это будет хорошо. Если у вас есть хорошее решение, дайте мне знать.
Я изменил JS моей директивы следующим образом
app.directive('usersDropdown', function(ConfigService,$http) {
return {
templateUrl: 'app/views/users_dropdown.html',
link: function($scope, element, attrs) {
$scope.getUserDetails = function(user_id){
console.log(user_id);
}
}
};
});
Для этого я получаю результат в консоли, как{{userList.SessionId}}
, Не ценность для этого. Но когда я проверял, функция передает ожидаемое значение.
Тогда почему ожидаемое значение не попадает внутрь этой функции?
решаемаяЯ решил проблему, изменив мои директивы html tamplate. Я удалил'
а также{{
из него следует следующее.
ng-click="getUserDetails(userList.SessionId)"