Javascript 将角度组件降级为AngularJS
我正在尝试降级我的角度组件,以便在AngularJS应用程序中使用 对于测试,我创建了非常简单的角度组件:Javascript 将角度组件降级为AngularJS,javascript,angularjs,angular,angular-hybrid,Javascript,Angularjs,Angular,Angular Hybrid,我正在尝试降级我的角度组件,以便在AngularJS应用程序中使用 对于测试,我创建了非常简单的角度组件: // my-test.component.ts @Component({ selector: 'my-test', template: '<h1>Hello World</h1>' }) export class MyTestComponent {} 之后,我简单地创建了angularjs指令,使这个组件在我的angularjs应用程序中可用 im
// my-test.component.ts
@Component({
selector: 'my-test',
template: '<h1>Hello World</h1>'
})
export class MyTestComponent {}
之后,我简单地创建了angularjs指令,使这个组件在我的angularjs应用程序中可用
import {MyTestComponent} from 'path/to/my-test.component';
import {downgradeComponent} from '@angular/upgrade/static';
angular.module(name, [])
.directive('myNgTest', downgradeComponent({component: MyTestComponent}))
我在模板中使用了它
<my-ng-test></my-ng-test>
错误:
实例化组件“MyTestComponent”时出错:不是
有效的“@angular/upgrade”应用程序。你忘了给一个公司降级了吗
AngularJS应用程序中是否包含AngularJS模块
在我读过的所有教程中,我可能遗漏了一些关键步骤。Angular2模块和AngularJS模块之间没有连接,但是需要降级的组件直接导入
欢迎任何建议 您还需要从
angular
注入UpgradeModule
和boostrapangularjs
。您还需要在@NgModule
上的导入中包含升级模块
要引导混合应用程序,必须引导应用程序的每个AngularJS和AngularJS部分。您必须首先引导角度位,然后要求UpgradeModule引导AngularJS位
谢谢你的回答。但是我觉得这是一个有点不同的方法。我有一个巨大的AngularJS应用程序,我只想偷偷加入一些AngularJS组件(以后可能会用AngularJS组件替换我的一些AngularJS组件,但不是现在)。在您的例子中,看起来更像是让我们在AngularJS应用程序中添加几个AngularJS组件。我说得对吗?@Andurit-我站在正确的位置,尽管你仍然必须从angularjs
引导angularjs
。在上述代码中,name
是angularjs
模块名称。另请参阅更新的答案和文档链接。这是一个很好的观点,在我的项目中竖起大拇指,并测试一些与之相关的内容。您好@Andurit,您是否找到了成功降级组件的方法?如果是的话,你能给你的问题贴个答案吗?
<my-ng-test></my-ng-test>
import { UpgradeModule } from '@angular/upgrade/static';
@NgModule({ imports:[UpgradeModule]})
export class MyModule {
constructor(private readonly upgrade: UpgradeModule) {}
ngDoBootstrap() {
this.upgrade.bootstrap(document.body, [name], { strictDi: true });
}
}