ก่อนอื่นบริการของคุณที่ได้รับการแก้ไขแล้ว
ก)
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
ส่งคืนวัตถุไม่มีอะไรใหม่ที่นี่
ตอนนี้วิธีการรับสิ่งนี้จากคอนโซลคือ
ข)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
ค )
หนึ่งในสิ่งที่คุณทำที่นั่นก่อนหน้านี้คือการสันนิษฐานว่า app.factory ส่งคืนฟังก์ชันของคุณเองหรือเวอร์ชันใหม่ของมัน ซึ่งไม่ใช่กรณี เพื่อให้ได้ตัวสร้างคุณจะต้องทำ
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
สิ่งนี้จะส่งคืน Constructor ExampleService ซึ่งคุณจะต้องทำ 'new'
หรืออีกวิธีหนึ่งคือ
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
สิ่งนี้จะส่งคืน ExampleService () ใหม่สำหรับการฉีด
angular.element('*[ng-app]').injector()
ควรใช้งานได้กับทุกกรณี