javascript - AngularJS 哲学 - Controller 作为 "windows"到服务

标签 javascript design-patterns angularjs angularjs-scope angularjs-service

抱歉标题模糊;

我一直在重构我的一些 AngularJS 代码,试图让它更“有 Angular ”,我注意到这种模式经常出现:

app.service("someService", function(...) {
    ...
}

app.controller("ControllerForThisSection", function($scope, someService) {
    $scope.someService = someService
}

基本上, Controller 的主要作用是为范围提供对服务的引用,以便 View 可以使用它,例如

<div ng-if="someService.status">
    ....
</div>

所以我有多个 Controller ,它们只依赖于某些共享数据或服务,并用于引用通过范围可用的那些服务。

使用这种设计有什么缺点吗?我可以改进我的想法吗?这是做到这一点的“Angular ”方式吗?

感谢您的任何建议!

最佳答案

这就是“Angular 方式”。共享数据应放入服务中,然后在需要的地方注入(inject)。

我喜欢主要从模型(通常存储在服务中)和 View 的 Angular 来考虑我的 Angular 应用程序。 Controller 只是粘合剂,让我们能够投影/提取特定 UI View 所需的模型部分。

此外,将服务视为返回模型 API,而不是模型对象(到 quote Josh)。

关于javascript - AngularJS 哲学 - Controller 作为 "windows"到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17228173/

相关文章:

javascript - 在模板中非法使用 ng-Transclude 指令

javascript - 交易模板 $routeProvider 之后侧边栏不工作

javascript - Angularjs 中 ng-view 位置更改后突出显示文本

javascript - 当数量等于 1 时禁用减号按钮。

javascript - Rails 将两个表单字段合并为一个

java - 如何在无状态服务中编写带有可变参数的模板流程?

python - FastAPI - 编写具有多个条件的 REST API 的最佳实践

javascript - AdSense 无法与 Turbolinks 合作

javascript - 登录后 Facebook api 不会重新加载

design-patterns - 您使用工厂而不是构造函数来创建对象的阈值是多少?