2016-01-12 10 views
10

Gulp、Bundle、ECM6と連携するように構成された非常に簡単なangular2プロジェクトがあります。バンドルでは、ECM5とECM5の両方を含む大きなファイルが作成されます。Angular2 SelectorがバンドルとECM6と一致しません

<!DOCTYPE html> 
<html> 
<head> 
    <title>Angular 2 Test</title> 
    <script src="bundle.js"></script> 
</head> 

<body> 
<mainapp> 

</mainapp> 
</body> 
</html> 

次のように角度のアプリが定義されている:私はそれをロードする際

import {Component, View, bootstrap} from 'angular2/core'; 

export class mainComponent { 
    static get annotations() { 
     return [ 
      new Component({ 
       selector: 'mainapp' 
      }), 
      new View({ 
       template: `<div>Hello!</div>` 
      }) 
     ]; 
    } 
} 

bootstrap(mainComponent); 

はしかし、私はこの問題は、私はbundle.jsを含めたことで

"selector 'mainapp' did not match any element" 

答えて

21

エラーを得続けますmainappコンポーネントがHTMLで定義される前にこれで問題は解決しました。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Angular 2 Test</title> 

</head> 

<body> 
<mainapp> 

</mainapp> 
<script src="bundle.js"></script> 
</body> 
</html> 

更新:

<script src="bundle.js" defer></script> 

もかかわらず、要素の順序の問題を解決するようです。

+4

スクリプトに 'defer'属性が追加されていれば助けになりました。 –

+0

'defer' attrが問題を解決しました! –

+1

@AlexOkrushko +1 – wootscootinboogie

関連する問題