aurealia でカスタム コンポーネントを研究していて、理解できない奇妙な動作に出くわしました。このことを考慮:
コンポーネント: xxxaaa.html
<template>
<div>xxxxxx</div>
</template>
xxxaaa.js:
export class Xxxaaa {}
app.html:
<template>
<import from='./xxxaaa'></import>
<div>
<xxxaaa/>
</div>
</template>
これは期待どおりに機能し、xxxxxx が表示されます。次に、コンポーネントをキャメルケース化します。
xxxAaa.html: 内容は変更されず、ファイル名のみ
xxxAaa.js:
export class XxxAaa {}
app.html:
<template>
<import from='./xxxAaa'></import>
<div>
<xxxAaa/>
</div>
</template>
何も表示されませんが、ログにはエラーは含まれていません。
INFO [aurelia] Aurelia 開始 index.js:26 DEBUG [テンプレート] dist/app.html ["dist/xxxAaa"] のリソースをインポート中 index.js:26 DEBUG [テンプレート] dist/xxxAaa.html のリソースをインポート []
したがって、最初の質問は、なぜそうなのか?
更新: これは、aurelia のバグ (間違って作成されたカスタム elt を適切に報告できない) か、実際にどのように機能するかについての私の理解における大きなギャップのように見えます。バグであることを確認するか、aurelia が私の要素を黙って無視する理由を説明してください。
次に、最初の動作状態にロールバックし、xxxaaa.js を次のように変更します。
export class xxxaaa {}
コンソール ログ エラー:
Potentially unhandled rejection [1] TypeError: Cannot call a class as a function
at execute._classCallCheck (http://localhost:9090/dist/xxxaaa.js:9:108)
at xxxaaa (http://localhost:9090/dist/xxxaaa.js:12:9)
at Container.invoke (http://localhost:9090/jspm_packages/github/aurelia/dependency-injection@0.4.5/container.js:362:27)
at Array.<anonymous> (http://localhost:9090/jspm_packages/github/aurelia/dependency-injection@0.4.5/container.js:142:52)
at Container.get [as superGet] (http://localhost:9090/jspm_packages/github/aurelia/dependency-injection@0.4.5/container.js:238:32)
at Container.elementContainerGet [as get] (http://localhost:9090/jspm_packages/github/aurelia/templating@0.8.14/view-factory.js:27:17)
at CustomElement.create (http://localhost:9090/jspm_packages/github/aurelia/templating@0.8.14/custom-element.js:136:80)
at applyInstructions (http://localhost:9090/jspm_packages/github/aurelia/templating@0.8.14/view-factory.js:79:33)
at ViewFactory.create (http://localhost:9090/jspm_packages/github/aurelia/templating@0.8.14/view-factory.js:172:17)
at CustomElement.create (http://localhost:9090/jspm_packages/github/aurelia/templating@0.8.14/custom-element.js:141:58)
したがって、2 番目の質問が来ます - この大文字と小文字の区別の原因は何ですか? es6、babel、または aurelia ですか?
更新: ここで aurelia から、クラスが見つからないという苦情が寄せられると思いますが、間違った名前のクラスを取得して使用しようとしているようです。例外自体は非常に曖昧です ( https://github.com/babel/babel/issues/887、https://github.com/babel/babel/issues/700 ) が、それが再びケースであることを正しく理解していますか? aurelia からの貧弱なエラー報告の?