問題タブ [aurelia-templating]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aurelia - 強化されたフラグメントを破棄する方法
私は、コンポーネントを Aurelia コンポーネントに段階的に置き換える既存の SPA に取り組んでいます。enhance
のAPIを使用しますTemplatingEngine
。これはかなりうまく機能しますが、アプリケーションの別の部分に移動するとき (ページのリロードなし) には、これらの強化されたフラグメントを破棄する (イベント リスナーを削除するなど) 必要もあります。
私の考えは、 aurelia インスタンスをページに保持して再利用することです。
現在、次のようなフラグメントを強化しています。
私が強化した HTML は次のようになります。
カスタム要素自体の関数でこれを試しました(DfElement::removeMyself()
):
しかし、コンテナーからビューを取得するときにエラーが発生します ( Undefined のプロパティ 'resources' を読み取ることができません)。クリック ハンドラからこの関数を呼び出しました。
主な質問:とunbind
その子のフックとdetached
フックを手動でトリガーする方法は?DfElement
おまけの質問:aurelia
インスタンス ( window.DFAurelia
)root
のプロパティhost
が定義されておらず、それは悪いことですか? ページ内のフラグメントを拡張 (および非拡張) するこの方法に潜在的な問題はありますか?
javascript - Aurelia - ViewCompiler のビュー リソースを登録する方法は?
バインド可能な列属性に基づいてテンプレートを動的にレンダリングする、行ベース (テーブルのような) カスタム要素があります。行テンプレートを文字列で構成し、ViewCompiler、ViewFactory、およびViewを使用してレンダリングします。
カスタム テンプレートに標準の HTML 要素が含まれるまで、これは問題なく機能します。カスタム要素をテンプレートに配置し始めると、機能しなくなります。HTML は引き続きレンダリングされますが、カスタム要素の動作は Aurelia によって関連付けられていません。
すべてのカスタム要素を使用するには、「登録」する必要があることを認識しています。「通常の登録」は、 を介してビューで<require>
、またはビューモデル@viewResources
で、またはグローバルに登録することで発生します。
ただし、この特定のケースでは、注入されViewCompiler
た はビューモデルの親のビュー リソースのみを継承します。私の質問は次のとおりです。追加のビューリソースを登録するにはどうすればよいですか? ViewCompiler
のcompile
メソッドの 2 番目のパラメーターは認識していますが、機能させることができませんでした。グローバルに登録する場合、それを機能させることができた唯一の方法です。
注: この質問は、ビュー リソースの登録に焦点を当てています。動的レンダリングは問題なく動作します
aurelia - アウレリア・コンポーズ
アウレリアの<compose>
エレメントについての簡単な質問です。次のように、カスタム要素をフォーム コントロールとして挿入するために使用したいと考えていました。
ただし、要素が,およびパラメータの<compose>
受け入れのみに制限されているように見え始めています。あれは正しいですか?、、などのパラメータをに基づいてカスタム要素に渡す最良の方法は何ですか?model
view-model
view
value
data
placeholder
control.type
私のソリューションで編集:
結局、Aureliaは,および属性<compose>
でのみ動作するようです。私の解決策は、次のようにすべてのデータを渡すことです(複数のアイテムを単一のオブジェクトとして渡すことができます)。view
view-model
model
私が興味深いと思ったのは、 を使用する場合、パラメータを受け取るためにデコレータをmodel.bind
使用する必要がないことです。@bindable
ビューですぐに使用できます。
javascript - カスタム aurelia 属性での単純な DOM 操作
簡単な DOM 操作をテストして、Aurelia カスタム属性を試しています。
驚いたことに、親の svg ノードに楕円ノードを追加して操作を実行すると、HTML は変更されますが、楕円はレンダリングされません。
innerHtml プロパティの操作は期待どおりに機能します。
要素 innerHtml を操作する代わりに、appendNode() を使用して目的の結果を達成することは可能ですか?