Обработка нажатия кнопки в контроллере в angular js через директиву - PullRequest
0 голосов
/ 03 апреля 2020

Требуется обработать нажатие кнопки из html, созданного с использованием директивы.

У меня есть контроллер "MachinesController", определенный в файловых машинах. js

Из файла new_machines. html вызвать директиву pipeVisualizer.

<div class="container-fluid" ng-controller="MachinesController" ng-init="initMachines()"
      autoscroll="false">
   .........
   <div class="col-lg-12">
      <pipeline-visualizer selected="selectedPipeline.pipelineId"/>
   </div>
</div>

Код директивы следующий:

.directive('pipelineVisualizer', [..., function (...) {
    return {
      restrict: 'E',
      scope: {
        selected: '<selected',
      },
      templateUrl: 'static/html/ng/pipeline_visualizer.html',
      link: function (scope, element, attrs) {
        scope.data = {}
        scope.pollers = {}
        scope.rendered = {}
        scope.table = {}
       ....
......

pipe_visualizer. html выглядит следующим образом

<button type="button" ng-click="bypassWaitForDrained(selected, results.operationsIds[$index], results.bypassed_machines['WaitForDrained'], results.operationclassNames[$index])">Bypass

Из pipe_visualizer. html когда кнопка нажата, мне нужно обработать где-нибудь. Могу ли я знать, где я должен определить функцию "bypassWaitForDrained"?

Я попытался определить функцию "bypassWaitForDrained" в файловой машине. js, где определен контроллер "MachinesController". Но я не могу получить доступ к функции. Могу ли я знать, что может быть причиной? Так как pipe_visualizer. html отображается в области видимости контроллера "MachinesController", в идеале я должен иметь доступ к функциям, определенным в машинах. js file right?

...