gpt4 book ai didi

javascript - 组件从 v5 或 v4 降级到 angularJS 时出现 Angular 注入(inject)器错误

转载 作者:可可西里 更新时间:2023-11-01 02:48:57 24 4
gpt4 key购买 nike

我创建了简单的 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

参见 v5 示例:http://plnkr.co/edit/eZScm8U41mGuuHJMjApV

最佳答案

你需要在你的应用模块中设置对$$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}));

Working plunker

关于javascript - 组件从 v5 或 v4 降级到 angularJS 时出现 Angular 注入(inject)器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com