2016-08-08 1 views
0

Я не могу фигурировать, как вызвать функцию из моей директивы, используя ng-click.Как можно ng-щелкнуть функцию из моей директивы angular-js?

Это пример моего HTML:

<div> 
    <directive-name data="exemple"> 
     <button class=btn btn-primary type="submit" ng-click="search()"> 
    </directive-name> 
</div> 

Это пример моего JavaScript:

... 
.directive('directiveName', ['exempleService', function(exempleService) { 
    function link(scope, element, attrs) { 

     scope.search = function() { 
      console.log("this is working") 
     }; 
    }; 

    return { 
     link: link, 
     restrict: 'E', 
     scope: {data:'=', 
     search:'&'} 
    } 

}]); 

Заранее спасибо! :)

ответ

1

Вы должны создать directive, который включает в себя button внутри шаблона директивы (либо как HTML или внешний файл).

VIEW

<div ng-app="app"> 
    <directive-name data="exemple"></directive-name> 
</div> 

ДИРЕКТИВА

var app = angular.module('app', []) 

app.directive('directiveName', function() { 
    return { 
    restrict: 'E', 
    link: function(scope, element, attrs) { 
     scope.search = function() { 
     alert('boe'); 
     } 
    }, 
    template: '<button class=btn btn-primary type="submit" ng-click="search()">CLICK</button>' 

    } 
}) 

FIDDLE

+0

Большое спасибо за ваш быстрый и рабочий ответ! :) –

0

Ваша кнопка должна быть в шаблоне директивы

.directive('directiveName', ['exempleService', function(exempleService) { 
    function link(scope, element, attrs) { 

     scope.search = function() { 
      console.log("this is working") 
     }; 
    }; 

    return { 
     link: link, 
     restrict: 'E', 
     template: '<div><button class=btn btn-primary type="submit" ng-click="search()"></div>' 
     scope: {data:'=', 
     search:'&'} 
    } 

}]); 
Смежные вопросы