汪汪一只猫
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');