为了账号安全,请及时绑定邮箱和手机立即绑定

Service和Factory等的区别

Service和Factory等的区别

慕莱坞森 2019-01-01 05:00:19
Service和Factory等的区别
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

Service
它是一个可注入的构造器,在AngularJS中它是单例的,用它在Controller中通信或者共享数据都很合适
var app = angular.module('app' ,[]);

app.config(function ($provide) {
$provide.service('movie', function () {
this.title = 'The Matrix';
});
});

app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix');
});

语法糖:
app.service('movie', function () {
this.title = 'The Matrix';
});

在service里面可以不用返回东西,因为AngularJS会调用new关键字来创建对象。但是返回一个自定义对象好像也不会出错。
Factory
它是一个可注入的function,它和service的区别就是:factory是普通function,而service是一个构造器(constructor),这样Angular在调用service时会用new关键字,而调用factory时只是调用普通的function,所以factory可以返回任何东西,而service可以不返回(可查阅new关键字的作用)
var app = angular.module('app', []);

app.config(function ($provide) {
$provide.factory('movie', function () {
return {
title: 'The Matrix';
}
});
});

app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix');



查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 483 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信