我在使用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 = {}));
答案 0 :(得分:2)
我认为您选择1会很好。从Angular.io cheat sheet
中查找示例var OtherService = ng.core.Class({constructor: function() { }});
答案 1 :(得分:0)
使用第一个选项,你可以声明对其他服务的依赖,比如ng.http,在第二个你不能轻易做到这一点。