Javascript AngularJS哲学-控制器为;“窗口”;服务
对不起,标题含糊不清 我一直在重新构造一些AngularJS代码,试图更“有角度”,我注意到出现了这样一种模式:Javascript AngularJS哲学-控制器为;“窗口”;服务,javascript,design-patterns,angularjs,angularjs-scope,angularjs-service,Javascript,Design Patterns,Angularjs,Angularjs Scope,Angularjs Service,对不起,标题含糊不清 我一直在重新构造一些AngularJS代码,试图更“有角度”,我注意到出现了这样一种模式: app.service("someService", function(...) { ... } app.controller("ControllerForThisSection", function($scope, someService) { $scope.someService = someService } 基本上,控制器主要是为作用域提供对服务的引用,以
app.service("someService", function(...) {
...
}
app.controller("ControllerForThisSection", function($scope, someService) {
$scope.someService = someService
}
基本上,控制器主要是为作用域提供对服务的引用,以便视图可以使用它,如
<div ng-if="someService.status">
....
</div>
....
因此,我有多个控制器,它们只依赖于某些共享数据或服务,并通过作用域提供对这些服务的引用
使用这种设计有什么缺点吗?我能改进我的思维吗?这是“有角度”的方法吗
谢谢你的建议 这是“有角度的方式”。共享数据应该放在服务中,然后在需要时注入
我喜欢主要从模型(通常存储在服务中)和视图的角度来考虑我的Angular应用程序。控制器只是一种粘合剂,允许我们投影/提取特定UI视图所需的模型部分
另外,将服务看作是返回一个模型API,而不是一个模型对象(to)。尽管我使用指令而不是控制器,但我的情况非常类似。我一直对这种模式很有信心,但这是一个非常有趣的问题,关于一个主控制器,它封装了所有的控制器来服务于这项服务?