我创建了简单的 angular5 组件 HelloComponent
:
var HelloComponent = function () {
};
HelloComponent.annotations = [
new ng.core.Component({
selector: 'hello-world',
template: 'Hello World!'
})
];
接下来我尝试在我的 angularJS 指令中使用这个组件,例如:
angular.module("app", [])
.directive("helloWorld", ng.upgrade.static.downgradeComponent(HelloComponent))
但是在运行这个脚本时我得到了这个错误:
Error: [$injector:unpr] Unknown provider: $$angularLazyModuleRefProvider <- $$angularLazyModuleRef http://errors.angularjs.org/1.6.5/$injector/unpr?p0=%24%24angularLazyModuleRefProvider%20%3C-%20%24%24angularLazyModuleRef
请参阅 angular 5 和 angularJS 的简单示例:http://plnkr.co/edit/dQJ2tgV2MuInT41ucjq1
如何解决这个问题?
附加信息
将组件从 v4 降级到 v1 的示例也存在:https://hackernoon.com/angular-v4-hybrid-upgrade-application-73d5afba1e01
但是当我尝试用这篇文章重新制作我的应用程序时,我遇到了另一个错误:
Unknown provider: $$angularInjectorProvider
参见 v4 示例:http://plnkr.co/edit/9Oxy0QeSg1FYve0cjGYw
v5 的相同示例返回旧错误:
Unknown provider: $$angularLazyModuleRefProvider
最佳答案
你需要在你的应用模块中设置对$$UpgradeModule
的依赖
改变
angular.module("app", [])
.directive("helloWorld", ng.upgrade.static.downgradeComponent(HelloComponent))
给
var app=angular.module("app", ['$$UpgradeModule']).directive("helloWorld", ng.upgrade.static.downgradeComponent({component:HelloComponent}));
关于javascript - 组件从 v5 或 v4 降级到 angularJS 时出现 Angular 注入(inject)器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552849/