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');
- 1 回答
- 0 關注
- 506 瀏覽
添加回答
舉報