1

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

这是组件

(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 = {}));
4

2 回答 2

2

我认为您会很好地使用选项 1。从Angular.io 备忘单中查找示例

var OtherService = ng.core.Class({constructor: function() { }});
于 2016-01-12T21:39:08.157 回答
0

使用第一个选项,您可能会声明对其他服务的依赖关系,例如 ng.http,但第二个您不能轻易做到这一点。

于 2016-09-21T15:48:42.060 回答