【发布时间】:2015-10-14 12:15:51
【问题描述】:
我正在尝试将 Angular 2.0 组件集成到 Angular 1.x 应用程序中(用于玩/学习建议...)
现在,我看到可以通过查看 Angular2 upgrade module 来完成:
import {Component, View, Inject, EventEmitter} from 'angular2/angular2';
import {createUpgradeModule, UpgradeModule} from 'upgrade/upgrade';
export function main() {
describe('upgrade: ng1 to ng2', () => {
it('should have angular 1 loaded', () => expect(angular.version.major).toBe(1));
it('should instantiate ng2 in ng1 template and project content',
inject([AsyncTestCompleter], (async) => {
var Ng2 = Component({selector: 'ng2'})
.View({template: `{{ 'NG2' }}(<ng-content></ng-content>)`})
.Class({constructor: function() {}});
var element = html("<div>{{ 'ng1[' }}<ng2>~{{ 'ng-content' }}~</ng2>{{ ']' }}</div>");
var upgradeModule: UpgradeModule = createUpgradeModule();
upgradeModule.importNg2Component(Ng2);
upgradeModule.bootstrap(element).ready(() => {
expect(document.body.textContent).toEqual("ng1[NG2(~ng-content~)]");
async.done();
});
}));
... continue tests here ...
我使用 Typescript + SystemJS + JSPM 创建了一个 Angular 1.x 应用程序,并使用 jspm install angular2 安装了 Angular 2.0
现在,我可以使用import {Component} from 'angular2/angular2'(例如)导入 Angular2,但我在 Angular2 的代码中的任何地方都找不到升级模块(我想做import {createUpgradeModule, UpgradeModule} from 'upgrade/upgrade',类似于我在测试中发现的)。
它是在单独的包装中吗?我应该手动安装吗?
编辑
解决方案(目前)应该是:
使用自定义构建,请参阅here
-
将实际模块带到您的项目中并导入它(这是我的首选解决方案)
编辑 22.11.15:
从 alpha 46 开始,升级模块是公开的。使用它不需要更多的黑客攻击!
【问题讨论】:
-
我想你可能正在寻找this line。我在我的项目中找不到那条路径,所以也许它没有被分发。但是您可以做的是 fork angular repo,构建它,然后您会找到该目录,以便您可以将其复制并粘贴到您的项目中。
标签: javascript angularjs angular