angular之factory、service、provider
我是一个刚接触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
angular之factory、service、provider相关推荐
- angularjs 中 Factory,Service,Provider 之间的区别
本片文章是使用了 angularjs 中使用 service 在controller 之间 share 对象和数据 的code(http://jsfiddle.net/kn46u0uj/1/) 来进行 ...
- AngularJS中service,factory,provider的区别(转载:http://my.oschina.net/tanweijie/blog/295067)...
目录[-] 一.service引导 二.service 1.factory() 2.service() 3.provider() 一.service引导 刚开始学习Angular的时候,经常 ...
- Introduction to the Service Provider Interfaces--官方文档
地址:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html What Are Services? Services are unit ...
- Angular $injector:unpr Unknown provider 问题原因汇总
Unknown provider: tProvider <- t 对于很多Angular 1.x 的使用者来说,是非常头疼的一件事情,因为使用者根本不知道原因在哪里. 本文总结了迄今为止所有导致 ...
- 服务提供者框架(Service Provider Framework)
服务提供者框架是指:多个服务提供者实现一个服务,系统为客户提供多个实现, 并把它们从多个实现中解耦出来.服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性.如JDBC,JMS等就是服务提 ...
- java provider_Java SPI(Service Provider Interface)
//ServiceLoader实现了Iterable接口,可以遍历所有的服务实现者 public final class ServiceLoader implements Iterable{//查找配 ...
- Java中的SPI(Service Provider Interface介绍及示例
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一个服务 ...
- Java基础学习总结(145)——Java SPI(Service Provider Interface)简介
SPI 简介 SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制.一个服务(Service)通常指的是已知的接口或者抽象类,服务提供方就是对 ...
- Error:Initialization error (angular 2 language service). Cannot read property 'CommandTypes' of unde
@Error:Initialization error (angular 2 language service). Cannot read property 'CommandTypes' of und ...
- webpack打包angularjs后出现Angular $injector:unpr Unknown provider的错误及解决
文章目录 问题 原因 解决 附 问题 一个angularjs1.x的历史项目,webpack3做的打包,打出来的包一起有几十M,因为一直内网运行,虽然包大了点,但是还能够接受. 因为最近有一些客户对这 ...
最新文章
- sizeof和strlen()区别
- 【数据结构与算法】【算法思想】【MySQL数据库索引】B+树
- 新四则运算 合作完成
- 做游戏,学编程(C语言) 17 猪小弟
- VMWare关闭beep声
- 「日常训练」Queue(Codeforces Round 303 Div.2 D)
- [BZOJ1999][codevs1167][Noip2007]Core树网的核
- 电子版白底寸照如何制作
- 如何在海量元素中(例如 10 亿无序、不定长、不重复)快速判断一个元素是否存在?
- python中 jsonchema 与 shema 效率比较
- 机器学习入门课程笔记(一)——deeplearning.ai: Neural Networks and Deep Learning
- Spring 中的Advice类型介绍
- 图像特征之SURF特征匹配
- Python遥感可视化 — Basemap作Albers投影
- ROS系统安装 kinetic (超详细)
- PointRCNN:三维目标检测
- Stackoverflow介绍
- 改造ueditor 在线图片功能 添加 删除 功能
- 函数 atoi() 和 itoa() 的 C 语言实现。
- c加加中break_C语言break语句
热门文章
- 今天有人问,为何汝粉丝这么少?
- 回忆NWT开工,还要吾亲自布网线
- 热烈庆祝博客排名进入前一万(8448)
- 为什么家里pm25比外面高_夫妻感情很好,男人为什么还会找情人?这是我听过最好的答案...
- idea 新建spring clound 项目_手把手教你spring源码搭建
- mysql group by聚合字段合并_mysql groupby 字段合并问题(group_concat)
- js时间和时间戳之间如何转换(汇总)
- 交换机的VLAN技术
- Entity Framework 延伸系列目录
- 垃圾文件粉碎机 防止恢复保安全