刚刚开始一个演示 Angular2 项目(以前没有 Angular1/AngularJS 的经验。已经遵循并扩展了在线快速入门和教程,一切都很好。但是我现在想使用库中的一些组件,专为 AngularJS 设计,并且有无穷无尽的问题!
大多数有关 AngularJS/Angular2 兼容性的可用信息都假设您有一个 AngularJS 项目,您正在向其中添加 Angular2 组件 - 而不是相反 - 所以我希望做的事情可能根本不可能实现。到目前为止,我所尝试的涉及一个基于 Angular2 快速入门的简单精简项目,其中包含加载到 index.html 中的单个 Angular2 组件。然后我想将现有库(基于 AngularJS)中的组件集成到其中。
我尝试过使用UpgradeAdapter.upgradeNg1Component
从库创建组件并将它们直接添加到我的 Angular2 组件中
我尝试通过 npm 安装 angularjs,将其导入到我的脚本标签中index.html
然后使用组合UpgradeAdapter.downgradeNg2Component
and UpgradeAdapter.bootstrap
将我的 Angular2 作为降级模块加载
这些似乎都不起作用 - 组件无法显示,浏览器控制台告诉我我有一个Uncaught SyntaxError: Unexpected token <
Evaluating http://localhost:3000/angular2/upgrade
Error loading http://localhost:3000/app/main.js
目前我最好的猜测是,这实际上是一个不受支持的场景,我需要有一个“正确的”AngularJS 应用程序才能使用UpgradeAdapter
Angular2 的功能。谁能证实这一点吗?或者我在这里缺少什么愚蠢的东西?
这是一个工作插件,描述了如何混合 Angular 1 和 Angular2 元素:
- http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg?p=preview http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg?p=preview
重要的一点是bootstrap
你的主要组成部分UpgradeAdapter
。这样,所有元素都可以在提供者(服务/工厂)和指令(组件/指令)中使用:
upgrade.bootstrap(document.body, ['heroApp']);
这两个答案可以帮助你:
- Angular 1.x 和 Angular2 一起 https://stackoverflow.com/questions/35017455/angular-1-x-and-angular2-together/35017780#35017780
- 如何在 ES5 中将升级后的 Angular 1 服务/工厂注入到 Angular 2 组件中? https://stackoverflow.com/questions/34900338/how-to-inject-upgraded-angular-1-service-factory-to-angular-2-component-in-es5/34901238#34901238
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)