【发布时间】:2016-05-26 09:24:28
【问题描述】:
以这种方式使用 DI 时:
var MainController = function MainController($scope) {
//use $scope here
};
MainController.$inject = ["$scope"];
它,工作,但是,当它像这样使用时:
var MainController = function MainController($injector) {
var $scope = $injector.get("$scope");
};
MainController.$inject = ["$injector"];
这会导致错误:
错误:[$injector:unpr] 未知提供者:$scopeProvider
这是一个plunker,其中有一个展示错误的示例,请检查 cmets 以查看替代方案,以查看只有范围而非自定义服务受此影响。
我发现了这个Angular bug,他们谈到在创建子 $scope 之前实例化控制器,Tomer Avni 回答了,所以:
- 为什么注入
$scope的第一种方法有效而第二种无效? - 还有没有办法使用依赖注入的第二种方法
用
$injector注入$scope?
【问题讨论】:
标签: javascript angularjs dependency-injection scope angularjs-injector