2017-02-18 6 views
0

私のAureliaアプリケーション用の標準的なユーザーステータスウィジェットを作成しようとしていますが、何が間違っているのか分かりません。出発点として私はthe docsに続きましたが、私の結果は期待通りのものではなく、ビルドやブラウザでもエラーが出ません。次のように基本的なカスタム要素が機能していないようです

関連するファイルは、次のとおりです。

<!-- nav-bar.html --> 
<template bindable='router'> 
    <require from="./user-status "></require> 
    <!-- various nav buttons --> 
    <p class="navbar-collapse collapse navbar-text"> 
     Test <user-status></user-status> 
     </p> 

ユーザーstatus.html

<template> 
    ${status} 
</template> 

ユーザーstatus.js

export default class UserStatusCustomElement { 
     constructor() { 
     this.status = 'Be sure to drink your Ovaltine!'; 
     } 
    } 

私が変更した場合に見てnav-bar.htmlに必要./user-status.htmlの場合、効果があるように見えます(追加のアウレリア様の属性は、レンダリングされたhtmlのuser-status要素に捧げられますが、メッセージをレンダリングしません(b/cはクラスをピックアップせず、htmlのみのものとしてレンダリングします)。私がそのまま残すと、エラーは発生しませんが、これらの属性は追加されず、静的テキストでさえ何も表示されません。

+0

'from =" ./user-status "'の余分なスペースのために問題が発生している可能性はありますか?おそらくそれを 'from =" ./user-status "'に変更しようとしますか?それは本当にばかげた提案のように思えるかもしれませんが、私は繰り返しのためのスペースのために問題に直面しました。 –

+0

もう1つの提案は、単にhtmlを使いたいのであれば、 'status'を' bindable'にして( 'router'の' nav-bar'で行われるように)、 'nav-bar'から属性をバインドします。 –

+1

'user-status.js'から' default'キーワードを削除します。 –

答えて

3

あなたのコードで遊んだところ、user-status.jsモジュールからdefaultを削除すると問題が解決されました。モジュールをインポートするときに、Aureliaがモジュールローダー(System.jswebpack、...)をどのように利用するのかという理由があると思います。残念ながら、私はAureliaの内部については、より深い答えを伝えるだけでは十分ではありません。

+1

ありがとう、私は実際にインポート/エクスポートのものをもう少し読みました.Aureliaが(モジュールローダーとは独立して)ビューモデルをどのようにインポートするのかということが正しいと思います。彼らは、デフォルトのエクスポートを持たないファイルのインポートをサポートしたいので、すべてをインポートしなければならず、最初にエクスポートされたものがビューモデルであると仮定します。私が知る限り、これを行うことは、デフォルトのエクスポート/デフォルトのインポート構文と互換性がありません。つまり、私よりも賢い人がそれを理解できる場合にはバグを報告します。 :) – Paul

関連する問題