Trước hết, một phiên bản sửa đổi của dịch vụ của bạn.
a)
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Điều này trả về một đối tượng, không có gì mới ở đây.
Bây giờ cách để có được điều này từ bảng điều khiển là
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
c)
Một trong những điều bạn đang làm ở đó trước đó là giả định rằng app.factory trả về cho bạn chức năng hoặc phiên bản mới của nó. Đó không phải là trường hợp. Để có được một constructor, bạn sẽ phải làm
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Điều này trả về một hàm tạo của Ví dụ dịch vụ mà tiếp theo bạn sẽ phải thực hiện 'mới' trên.
Hay cách khác,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Điều này trả về exampleService () mới khi tiêm.
angular.element('*[ng-app]').injector()
nên làm việc cho tất cả các trường hợp.