我的AngularJS 1(+ Ionic)应用程序正在处理各种类型的数据(Employee,Company,...),每种类型和视图都有一个控制器。
目前控制器之间存在大量相同的代码,例如下面用于删除具有模式对话框的实体以进行确认的部分。
我想把它分解为一个函数或服务或者其他什么,我会从每个控制器调用,但不知道该怎么做,因为这段代码使用的是$ scope,$ ionicModal和$ ionicHistory。 / p>
你能告诉我怎么办吗?非常感谢!
$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();
}
答案 0 :(得分:1)
在这种情况下,您可以将$scope
传递给服务方法。应该注入$ionicModal
和$ionicHistory
。
因此,请创建一个注入$ionicModal
和$ionicHistory
的服务。定义了服务上的方法,以$scope
为参数。
在每个控制器中,将$scope
传递给服务方法的相应功能。