angular之factory、service、provider

本文介绍了AngularJS中Service和Controller的区别及应用方法。Service用于存放业务逻辑和持久化数据,便于不同Controller间共享;Controller则负责视图展示逻辑。文章通过示例详细解释了factory与service的创建方式。

我是一个刚接触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这部分用的比较少,相关体会以后补上。

转载于:https://www.cnblogs.com/sheting/articles/5027295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值