【问题标题】:how to call the same function from two different places in angularjs如何从angularjs中的两个不同位置调用相同的函数
【发布时间】:2020-01-21 13:48:21
【问题描述】:

我有两个不同的 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>
  1. 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代码。

  1. 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;
          }
        }
    });
}

在弹出模式中,我还需要再次编写相同的函数。然后只有它在工作。

有什么方法可以在两个地方使用相同的功能。

【问题讨论】:

    标签: javascript html css angularjs


    【解决方案1】:

    对于常用功能,服务是最好的地方。您应该根据控制器的要求将您的服务添加为依赖注入。

    要创建和注入服务,您可以参考这个官方 angularjs 文档站点: https://docs.angularjs.org/guide/services

    【讨论】:

      【解决方案2】:

      您可以将功能移动到单独的服务中,并将其注入您需要的所有地方。

      如果它应该绑定到mainController.js,服务函数可以使用rxJs Subject或者只是发出事件来更新mainController.js中的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-25
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多