Angularjs 使用typescript创建$provider
我正在尝试使用从angularjs应用程序移植的一个相当简单的方法创建一个$provider 原著Angularjs 使用typescript创建$provider,angularjs,typescript,Angularjs,Typescript,我正在尝试使用从angularjs应用程序移植的一个相当简单的方法创建一个$provider 原著 (function(){ var app = angular.module('app',[]); app.config(function($provide) { $provide.provider('foo',function(){ this.$get = function(){ var foo
(function(){
var app = angular.module('app',[]);
app.config(function($provide) {
$provide.provider('foo',function(){
this.$get = function(){
var foo = 'foo';
return {
foo:foo
}
}
}
}
}());
这很直截了当。但是,当我尝试在typescript中实现它时,我在this上得到一个错误。$get
->属性get不存在
export interface IFooConfig {
foo:string;
}
export class FooConfig implements IFooConfig {
static $inject = ["$injector","$provide"];
constructor(private $provide : angular.auto.IProvideService,
public foo:string
) {
$provide.provider('foo',() =>{
this.$get = () => { // error here on this.$get
this.foo = "foo";
return {
foo:this.foo
}
}
})
}
}
angular.module("app").config(FooConfig);
}
我觉得这应该是可行的,否则我在做一些根本不正确的事情在胖箭头函数
()=>…
中,这个
的值是从它的包含范围中带出来的,但是provider函数传递了一个完全不同的上下文。第一步,把这行恢复到<代码>。提供者(Foo),函数()…{/Cord>,第二步——考虑同样的原因需要进一步的改变。显然,我没有正确理解FAT箭头函数。谢谢@ DCoder。