問題タブ [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.
javascript - 置き換え可能な属性は aurelia 1.0 で廃止されましたか?
slot
に取って代わられたという印象を受けましたが、1.0 リリースで再導入されたreplaceable
と言われましたが、それは本当ですか?replaceable
javascript - 使用の違いは何ですかと? より適切なシナリオにはどのようなものがありますか?
チームメイトと私はこの 4 か月間、Aureliaでアプリケーションを構築してきました。彼と私は、この 2 つの異なる方法でコンポーネントを作成し、使用してきました。ある程度の一貫性を保ち、すべてを 2 つのスタイルのいずれかに変更したいのですが、どちらが優先され、ニーズにより適しているかわかりません。
私が使用する<compose>
ことにしたのは、それがよりクリーンに感じられ、遭遇したすべてのニーズに合っているためですが、カスタム要素を使用する方が客観的に優れている場合は、それに切り替えたいと思います.
例えば:
(彼の方法のビューモデル:)
(彼の方法のビュー:)
(私のやり方のビューモデル:)
(私のやり方の見方:)
変更する必要がありますか? そうでない場合、私が使用していたのと同じスタイルを使用するように彼を説得するために使用できるいくつかの理由は何ですか?
aurelia - カスタム aurelia コンポーネントのインライン テンプレート
aurelia では、ビューに対して、getViewStrategy メソッドを実装し、ViewModel で InlineViewStrategy を返すだけでインライン テンプレートを提供できます。ただし、これはビューに対してのみ機能し、カスタム要素に対しては機能しません。カスタム要素のインライン テンプレートを提供する同様の方法はありますか?
ありがとう
aurelia - アウレリア動的合成
aurelia で動的合成を実装しようとしています。より正確には、タブを作成しており、新しいタブごとに新しい div を追加しています。内部では、compositionEngine.compose(...) を使用してそのタブに対応するコンポーネントを追加しています。実際の例は、https ://gist.run/?id=08a04dad8d94af01989d789a216195f3 にあります。しかし、私はいくつかの奇妙な行動を経験しています。たとえば、同じコンポーネントを 2 つのタブで 2 回開くと、viewModel が再利用 (共有) されているように見えます。モジュール 2 を 1 回開き、[変更] をクリックしてカウンターをインクリメントしてから、もう一度開きます。以前の値が表示されます。何か案は?
aurelia - Aurelia: ビューモデルからカスタム属性を追加および削除する方法
ビューモデルからカスタム属性を追加および削除するにはどうすればよいですか?
targetElement.SetAttribute('mycustomelement') で属性を追加しても、Aurelia カスタム属性は有効になりません。
TemplatingEngine.Enhance() は、ビューモデルからカスタム属性に命を吹き込むことができますか?
javascript - Aurelia - カスタム要素はデフォルトでバインディング コンテキストを継承しません。大丈夫ですか?
各ビューモデルは、そのbind()
メソッドでbindingContext
との 2 つのパラメーターを取得しますoverrideContext
。最初のものは現在のスコープを記述し、2 つ目は外側のスコープ (親、親の親など) を記述します。これは次のようになります。
これにより、ビューモデルは親のスコープからもメソッドとフィールドにアクセスできます。
bindingContext
カスタム要素が作成された場合、期待されるおよびoverrideContext
パラメータをで受け取りますbind()
。しかし、それらを子に渡すと、期待される形式ではありませんが、次のようになります。
parentOverrideContext
オリジナルは に移動されていることに注意してください__parentOverrideContext
。このように、テンプレート エンジンは親のスコープから何も解決できません。具体例を見てみましょう:
page.html:
page.js:
MyPage
ここで、親の親 ( ) で定義されたメソッドを最も内側のビューモデル ( ) のボタンから呼び出したいの<custom-element-2>
ですが、フォーマットが異なるため、テンプレートは親を見つけることができず、メソッドを解決できません。
instruction.inheritBindingContext
いくつかのデバッグの後、親を含めるかどうかを決定するフラグ ( ) があることに気付きました。このフラグはtrue
、デフォルトではルータービュー用ですがfalse
、カスタム要素用です。質問: 私はそれを正しく理解していませんか? これは望ましい動作ですか? それともバグですか?
とにかく、誰かが興味を持っているなら、フラグは簡単に変更できます:
aurelia - AureliaJSでは、マークアップの代わりにJSからビューを追加/削除する方法は?
カスタム要素を実装するビュー/コンポーネントがいくつかあるので、次のようにマークアップで使用します。
ここまでは順調ですね。しかし今、これらの種類のビュー/コンポーネントをプログラムで追加/削除する必要があります。私は aurlia ハブを読んでいましたが、成功しませんでした...ヒントをいただければ幸いです。