【发布时间】:2016-10-06 11:36:06
【问题描述】:
这是我在 angularjs 1.5.5 中编写的一段代码:
export default angular.module(
'myApp', [])
.provider('finder', function finderProvider() {
this.$get = $get;
function $get() {
console.log('GET');
}
this.callMe = () => {
console.log('CALLED');
};
})
.config(['finderProvider', function(finderProvider) {
//finderProvider.$get();
finderProvider.callMe();
}])
.name;
我稍后会尝试将服务注入此提供程序。我在文档中读到我只能使用 $get() 方法在提供程序中注入服务。但是,我不能自动调用 $get() 。我可以让这个工作的唯一方法是在我评论调用的部分手动调用 $get() 。但手动调用 $get 对我来说似乎不合适。
在此示例中,仅记录了“CALLED”。知道我在这里缺少什么吗?
编辑。我尝试使用箭头函数使用另一种语法,但得到了相同的结果:
.provider('finder', () => {
return {
$get: () => {
console.log('GET');
},
callMe: () => {
console.log('CALLED');
}
};
})
提前致谢。
【问题讨论】:
-
粗箭头对待
this的方式与对待函数的方式不同。如果您将第一个示例也更新为粗箭头,会发生什么情况? -
@DavidL 我尝试使用箭头函数更改它,但得到相同的结果。我用我的新更改更新了我原来的帖子。
-
您在此处发布的内容肯定不止这些。没有理由不这样做。
-
@DavidL 谢谢。实际上我的代码没有任何问题。我将此提供程序用作 config()。这就是没有使用 $get 的原因。
标签: angularjs dependency-injection get provider