【问题标题】:Best way to factorize controller code using $scope使用 $scope 分解控制器代码的最佳方法
【发布时间】:2016-11-27 11:08:18
【问题描述】:

我的 AngularJS 1 (+Ionic) 应用程序正在处理各种类型的数据(员工、公司等),每种类型和视图都有一个控制器。

目前控制器之间有很多相同的代码,例如下面的一段用于删除实体,并带有用于确认的模态对话框。

我想将其分解为一个函数或服务或其他任何东西,我将从每个控制器调用,但不知道该怎么做,因为此代码使用 $scope、$ionicModal 和 $ionicHistory。

您能告诉我如何进行吗?非常感谢!

$ionicModal.fromTemplateUrl("templates/delete-modal.html", {
    scope: $scope
}).then(function(modal) {
    $scope.modal = modal;
    $scope.text = "Delete entity?";
});

$scope.delete = function() {
    $scope.modal.show();
}
$scope.doDelete = function() {
    $scope.modal.hide();
    databaseService.remove($scope.entity);
    $ionicHistory.goBack(-2);
}
$scope.doCancel = function() {
    $scope.modal.hide();
}

【问题讨论】:

    标签: angularjs ionic-framework refactoring


    【解决方案1】:

    在这种情况下,您可以将$scope 传递给服务方法。 $ionicModal$ionicHistory 应该被注入。

    所以创建一个注入$ionicModal$ionicHistory 的服务。在服务上定义您的方法,将$scope 作为参数。

    在每个控制器中,将$scope 传递给服务方法的相应函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 2011-10-30
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 2018-07-04
      • 1970-01-01
      相关资源
      最近更新 更多