как вызвать одну и ту же функцию из двух разных мест в angularjs - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть два разных HTML-файла.Кнопка выбора есть в двух файлах HTML.Если я нажму эту кнопку, мне нужно выбрать карту.

  • У меня две функции.Во-первых, по умолчанию мне нужно показать на экране.

  • Во-вторых, мне нужно показать те же данные во всплывающем моде.

    1. home.html
 <button type="button" class="btn btn-primary col-xs-12 col-md-12 col-lg-12"
         ng-click="selectCard()">ADD CARD</button>
page.html
<button type="button" class="btn btn-primary col-xs-12 col-md-12 col-lg-12" 
        ng-click="selectCard()">ADD CARD</button>

Это оба одинаковые HTML-коды.

mainController.js
$scope.selectCard = function () {
    $scope.select = true;               
}

Но моя проблема в том,

страница.HTML-файл в модальном всплывающем окне.

$scope.view = function () {
    $uibModal.open({
        templateUrl: 'page.html',
        size: 'lg',
        windowClass: 'page',
        controller: function ($scope, $uibModalInstance, $timeout) {          
          $scope.selectCard = function(){             
              $scope.select = true;
          }
        }
    });
}

Здесь внутри модального всплывающего окна также мне нужно написать ту же функцию снова.Тогда только это работает.

Есть ли способ использовать одну и ту же функцию в обоих местах.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Для общих функций услуги - лучшие места.Вы должны добавить свой сервис как Dependency Injection, как требуется в ваших контроллерах.

Чтобы создать и внедрить сервис, вы можете обратиться к этому официальному сайту документации angularjs: https://docs.angularjs.org/guide/services

0 голосов
/ 20 сентября 2019

Вы можете переместить функцию в отдельный сервис и внедрить ее во все нужные вам места.

В случае, если она должна быть привязана к mainController.js, сервисная функция может использовать rxJs Subject или просто генерировать событие для обновлениязначение в mainController.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...