我是一个刚接触angularjs 的菜鸟,所以在用angular时,会往controller里添加很多不必要的逻辑,当同事看到我写的代码时,说没有看下去的动力。作为一只积极向上的小菜鸟,我询问了同事也上网查询了一些相关面。其实用angular,应该把大部分业务逻辑和持久化的数据放在service里,并且这些数据可以在不同的controller之间使用,反而controller相对来说应该很薄。每次切换和刷新页面时,angular会清空当前的controller。angular提供了3种方法来创建并注册service。
1、factory
2、service
3、provider(我本身用的比较少,所以相关体会待以后补充)
简单说说它们的区别和用法:
1、用factory是创建一个对象,为它添加属性和方法,方便调用的时候返回想要的数据。
app.controller('myCtrl',function($scope,myFactory){
$scope.hello = myFactory.getHello();
});
app.factory('myFactory',function(){
var _hello = 'hello';
var factory = {};
factory.getHello = function(){
return _hello;
};
return factory;
});
2、用service是用new关键字进行实例化。所以是在给“this”添加属性,然后service返回“this”。当把service传进controller以后,在controller里"this"上的属性就可以通过service来使用。
app.controller('myCtrl',function($scope,myService){
$scope.hello = myService.getHello();
});
app.factory('myService',function(){
var _hello = 'hello';
this.getHello = function(){
return _hello;
};
return factory;
});
3、provider这部分用的比较少,相关体会以后补上。