使用 ES5 声明 Angular2 服务
Declaring an Angular2 Service with ES5
我在使用 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 = {}));
我认为您可以选择选项 1。从 Angular.io cheat sheet
中找一个例子
var OtherService = ng.core.Class({constructor: function() { }});
使用第一个选项,您可能可以声明对其他服务的依赖关系,例如 ng.http,第二个选项您不能轻易做到这一点。
我在使用 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 = {}));
我认为您可以选择选项 1。从 Angular.io cheat sheet
中找一个例子var OtherService = ng.core.Class({constructor: function() { }});
使用第一个选项,您可能可以声明对其他服务的依赖关系,例如 ng.http,第二个选项您不能轻易做到这一点。