使用ES5声明Angular2服务

时间:2016-01-04 19:49:09

标签: angular angular2-services

我在使用ES5将服务注入组件时遇到了问题。我终于能够让它工作,但发现了几种不同的服务声明方式。其中一个是更“声称”的方式来申报服务吗?

以下是组件

(function (app) {
app.employeeSearchComponent = ng.core
    .Component({
        selector: 'employee-search',
        templateUrl: rootUrl + 'Home/EmployeeSearch',
        providers: [app.Service]
    })
    .Class({
        constructor: [app.Service, function(service) {
                   console.log(service.greeting);
            }]
        });
})(window.app || (window.app = {}));

以下是服务(选项1)

(function(app) {
    app.Service = ng.core.Class({
        constructor: function(){},
        greeting: function() {
            return 'hello';
        }
    });
})(window.app || (window.app = {}));

这是服务(选项2)

(function(app) {
    app.Service = function() {
        this.greeting = function() {
            return 'hello';
        }
    };
})(window.app || (window.app = {}));

2 个答案:

答案 0 :(得分:2)

我认为您选择1会很好。从Angular.io cheat sheet

中查找示例
var OtherService = ng.core.Class({constructor: function() { }});

答案 1 :(得分:0)

使用第一个选项,你可以声明对其他服务的依赖,比如ng.http,在第二个你不能轻易做到这一点。