Tolong bersamaku di sini. Saya tahu ada jawaban lain seperti: AngularJS: Layanan vs penyedia vs pabrik
Namun saya masih tidak tahu kapan Anda akan menggunakan layanan di pabrik.
Dari apa yang saya tahu pabrik biasanya digunakan untuk membuat fungsi "umum" yang dapat dipanggil oleh beberapa Pengontrol: Membuat fungsi pengendali umum
Dokumen Angular tampaknya lebih memilih pabrik daripada layanan. Mereka bahkan merujuk ke "layanan" ketika mereka menggunakan pabrik yang bahkan lebih membingungkan! http://docs.angularjs.org/guide/dev_guide.services.creating_services
Jadi kapan seseorang akan menggunakan layanan?
Adakah sesuatu yang hanya mungkin atau lebih mudah dilakukan dengan layanan?
Adakah hal berbeda yang terjadi di balik layar? Perbedaan kinerja / memori?
Ini sebuah contoh. Selain metode deklarasi, mereka tampak identik dan saya tidak tahu mengapa saya melakukan yang satu vs yang lain. http://jsfiddle.net/uEpkE/
Pembaruan: Dari jawaban Thomas, sepertinya menyiratkan bahwa layanan adalah untuk logika yang lebih sederhana dan pabrik untuk logika yang lebih kompleks dengan metode pribadi, jadi saya memperbarui kode biola di bawah ini dan tampaknya keduanya dapat mendukung fungsi pribadi?
myApp.factory('fooFactory', function() {
var fooVar;
var addHi = function(foo){ fooVar = 'Hi '+foo; }
return {
setFoobar: function(foo){
addHi(foo);
},
getFoobar:function(){
return fooVar;
}
};
});
myApp.service('fooService', function() {
var fooVar;
var addHi = function(foo){ fooVar = 'Hi '+foo;}
this.setFoobar = function(foo){
addHi(foo);
}
this.getFoobar = function(){
return fooVar;
}
});
function MyCtrl($scope, fooService, fooFactory) {
fooFactory.setFoobar("fooFactory");
fooService.setFoobar("fooService");
//foobars = "Hi fooFactory, Hi fooService"
$scope.foobars = [
fooFactory.getFoobar(),
fooService.getFoobar()
];
}