angularjs – 在哪里放置模型数据和行为?
发布时间:2020-12-17 09:36:20 所属栏目:安全 来源:网络整理
导读:我正在使用AngularJS的最新项目。在文档和教程中,所有模型数据都将放入控制器范围。我知道,必须有可用于控制器,因此在相应的视图。 但我不认为该模型应该实际上在那里实现。它可能是复杂的,并有私有属性为例。此外,可能希望在另一个上下文/应用程序中重
我正在使用AngularJS的最新项目。在文档和教程中,所有模型数据都将放入控制器范围。我知道,必须有可用于控制器,因此在相应的视图。
但我不认为该模型应该实际上在那里实现。它可能是复杂的,并有私有属性为例。此外,可能希望在另一个上下文/应用程序中重用它。将所有东西放入控制器会完全打破MVC模式。 这同样适用于任何模型的行为。如果我使用DCI architecture和单独的行为从数据模型,我将不得不引入额外的对象来保持行为。这将通过介绍角色和上下文来完成。 当然,模型数据和行为可以用纯javascript对象或任何“类”模式来实现。但是AngularJS的做法是什么呢?使用服务? 所以它归结到这个问题: 根据AngularJS最佳实践,如何实现从控制器解耦的模型?
如果你想要多个控制器可用的东西,你应该使用服务。这里有一个简单的例子:
myApp.factory('ListService',function() { var ListService = {}; var list = []; ListService.getItem = function(index) { return list[index]; } ListService.addItem = function(item) { list.push(item); } ListService.removeItem = function(item) { list.splice(list.indexOf(item),1) } ListService.size = function() { return list.length; } return ListService; }); function Ctrl1($scope,ListService) { //Can add/remove/get items from shared list } function Ctrl2($scope,ListService) { //Can add/remove/get items from shared list } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |