angularjs – 在哪里放置模型数据和行为?

前端之家收集整理的这篇文章主要介绍了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
}
原文链接:https://www.f2er.com/angularjs/148036.html

猜你在找的Angularjs相关文章