2016-06-17 8 views
2

私はAngular1コンポーネントをAngular2コンポーネント内でブートストラップしています。埋め込みAngular1アプリを無視するようにAngular2に指示するにはどうすればよいですか?

テンプレート:

<div #ng1Hook></div> 
<input type="text" ng-model="vm.filters.date" /> 

コンポーネント:

@ViewChild('ng1Hook') div; 
ngAfterViewInit() { 
    angular.bootstrap(this.div.nativeElement, ['ng1Module']); 
} 

問題はNG2は、そのテンプレートの内部でNG1コードを解析しようとしていることです。たとえば、テンプレートの下には、次のようなコードがあります。ng-model="vm.filters.date"とか、NG2で処理できません。

は今のところ、私のNG2コンポーネントは、それがNG1コンポーネントテンプレートで私が使用している何かng-model=vm.xyz

どのように私は、TELのNG2は、そのテンプレートの内部でNG1コードを無視することが可能である未定義のプロパティ'xyz'を読み取ることができません不平を言っています? NG2をNG2の中に正しく埋め込む他の方法はありますか?

+0

Angular2は 'ng-model =" vm.filters.date "'を処理しようとしません。あなたは問題が正確に何かについての詳細を教えてください。 –

+0

実際には、それは 'ng-model = vm.xyz'によって引き起こされたのではないかと疑います。このスニペットには、Angular2が処理するものは含まれていません。むしろあなたのHTMLに '{{vm.xyz}}'のようなものがあり、Angular2で処理されると思います。 –

+0

私は間違ってng2の内部でng1を実装しているかもしれませんが、基本的にはng2コンポーネントの中に完全なng1モジュールがあります。これはまったく動作しない可能性があります。私はng1モジュールからログを取得するので、それは生きている。私はちょうどng1モジュールを置くために適切な場所を見つけることを探していますhtml – RobSeg

答えて

2

属性ngNonBindableを追加して、Angular2がバインディングを処理したり、ディレクティブまたはコンポーネントをインスタンス化したりするのを防ぐことができます。

HTMLを動的に追加された場合Angular2はまた、

<div [innerHTML]="someHtml"> 

someHtmlの内容は、DOMに追加し、任意の方法でAngular2によって処理されないことになる処理されません。

+1

ngNonBindableがトリックをやった – RobSeg

関連する問題