javascript - 使用服务时 Controller 中的 Angular.js 方法重复

标签 javascript angularjs proxy controller

我创建了一个 BookService 用于存储 (add)、获取 (getAll) 和删除 (remove ) 书籍。现在我想在我的 Controller 中使用这个 BookService 来发布一些我以后可以在我的 View 中使用的方法。我的 Controller 如下所示:

app.controller('BookController', ['BookService', '$scope', function(BookService, $scope) {

  $scope.addBook = function() { BookService.add(); }
  $scope.getAllBooks = function() { BookService.getAll(); } 
  $scope.removeBook = function() { BookService.remove(); }

}]);

如您所见, Controller 只是将方法调用转发给服务的代理。这通常是不好的做法吗?使用 Angular.js 是否有更好的方法来解决这个问题?在我看来,在没有 Controller 的情况下直接从 View 调用服务似乎是一个更大的问题。

最佳答案

最佳实践

据我所知,这是非常好的做法,我假设您在这里使用 $scope 将这些服务绑定(bind)到按钮或类似的东西。使用工厂或服务的想法是创建一些组织良好的可重用代码,然后您可以像您所做的那样在 Controller 中实例化这些代码。

Controller 可能会变得相当复杂,因此最好将基本功能转移到您的服务中。在您的情况下,您有一个相对简单的 Controller ,因此您可能看不到以这种方式编码的好处。但我向您保证,随着您的代码库的增长,您将需要像这样编写代码以保持可读性。

注意

作为额外说明,我添加了一个数据处理过程,您可能会用它来举例说明数据库请求

database > API > service/factory > controller > view

当从数据库中请求某些东西时,这将是正确的路径。

关于javascript - 使用服务时 Controller 中的 Angular.js 方法重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32411807/

相关文章:

python - 如何使用 paramiko 设置 SFTP 服务器连接超时?

c# - 重载显式 CAST 运算符

javascript - 对齐 div 中的 css 位置不起作用

Javascript 在评估所有参数之前返回结果?

javascript - 从数据库获取数据到angular js

javascript - 根据观察者 bool 值执行 ui-sref?

javascript - 检查全部 jquery

javascript - 使用 JavaScript 将 JavaScript 变量字符串转换为 JSON

javascript - 如何让 div 在窗口调整大小时更改最大高度?

java - 在java中通过代理服务器Url连接到网站