目前我有一堆控制器似乎有点过于笨重,因为他们管理数据的逻辑和存储。
例如,让我们采用一个过度简化的寄存器控制器:
$scope.username = "";
$scope.password = "";
$scope.validateUsername= function(){
......
}
$scope.validatePassword= function(){
......
}
$scope.updateUserConfig = function(){
//a rest call here
}
好吧,对我来说这似乎是错的,因为控制器正在存储数据,执行逻辑并调用休息服务。
我认为控制器应该是用于视图的逻辑,而“模型”即用户名和密码应该在其他地方,以及对其余服务的调用。
我已经看过并且已经看到人们雇用工厂注入控制器进行其余的通话;因为这些工厂不会存储状态,所以它们可以在整个应用程序中共享,所以这似乎是一个好主意?
我不确定数据方面,数据存储在控制器中是正常的还是有更好的做法?
答案 0 :(得分:0)
重要的是要记住,您的视图必须绑定到控制器中的数据/方法,因此必须以这种方式公开它才能实现。换句话说,在控制器中使用这些属性没有任何问题。
话虽这么说,这些数据通常来自外部源或多个视图/控制器中需要,因此工厂/服务将对象返回到控制器然后将该对象分配给$scope
是很常见的。属性。通过这种方式,您可以抽象出该层,并在整个应用程序中共享数据,而无需重复自己。