2016-09-28 1 views
0

Я начинаю проект angular2, надеясь повторно использовать мои угловые компоненты. Я пытался настроить мой проект, основанный на этом plunkr http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg, но когда я попытался запустить мое приложение, я получил эту ошибку:Ошибка с гибридным угловым1 + 2 применением: Непринятая ошибка: обновление не может быть создано без применения NgModule приложения Angular 2

Uncaught Error: UpgradeAdapter cannot be instantiated without an NgModule of the Angular 2 app. 

plunkr только экземпляр адаптера обновления без какого-либо модуля NG2, и я не понимаю, почему это не сработало для меня. Я не уверен, что использует версия angular2 plunkr, но я использую версию 2.0.0.

ответ

0

Очевидно, что угловой 2.0.0 требует, чтобы NgModule передавался конструктору UpgradeAdapter. Я вырыт следующий фрагмент кода из @ угловома/обновления, которое работает:

var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module)); 
var module = angular.module('myExample', []); 

module.directive('greet', function() { 
return { 
scope: {salutation: '=', name: '='}, 
template: '{{salutation}} {{name}}! - <span ng-transclude></span>' 
}; 
}); 

module.directive('ng2', adapter.downgradeNg2Component(Ng2)); 

@Component({ 
    selector: 'ng2', 
    template: 'ng2 template: <greet salutation="Hello" [name]="world">text</greet>' 
}) 
class Ng2 { 
} 

@NgModule({ 
declarations: [Ng2, adapter.upgradeNg1Component('greet')], 
imports: [BrowserModule] 
}) 
class MyNg2Module { 
} 

document.body.innerHTML = '<ng2></ng2>'; 

adapter.bootstrap(document.body, ['myExample']).ready(function() { 
    expect(document.body.textContent).toEqual("ng2 template: Hello world! - text"); 
}); 
+0

Не уверен, если у вас это в другом месте в вашем коде, но вы также должен 'импорт {forwardRef} от«@ угловое/ядро»; ' –

Смежные вопросы