在分离数据和逻辑时,角度的最佳做法是什么

时间:2015-10-01 13:26:22

标签: angularjs rest

目前我有一堆控制器似乎有点过于笨重,因为他们管理数据的逻辑和存储。

例如,让我们采用一个过度简化的寄存器控制器:

$scope.username = "";
$scope.password = "";

$scope.validateUsername= function(){
  ......
}
$scope.validatePassword= function(){
  ......
}

$scope.updateUserConfig = function(){
     //a rest call here
}

好吧,对我来说这似乎是错的,因为控制器正在存储数据,执行逻辑并调用休息服务。

我认为控制器应该是用于视图的逻辑,而“模型”即用户名和密码应该在其他地方,以及对其余服务的调用。

我已经看过并且已经看到人们雇用工厂注入控制器进行其余的通话;因为这些工厂不会存储状态,所以它们可以在整个应用程序中共享,所以这似乎是一个好主意?

我不确定数据方面,数据存储在控制器中是正常的还是有更好的做法?

1 个答案:

答案 0 :(得分:0)

重要的是要记住,您的视图必须绑定到控制器中的数据/方法,因此必须以这种方式公开它才能实现。换句话说,在控制器中使用这些属性没有任何问题。

话虽这么说,这些数据通常来自外部源或多个视图/控制器中需要,因此工厂/服务将对象返回到控制器然后将该对象分配给$scope是很常见的。属性。通过这种方式,您可以抽象出该层,并在整个应用程序中共享数据,而无需重复自己。