raw template plugin outlets を介してプロパティを渡すための興味深い戦略

これについて簡単な質問があります。

TLTで興味深いことに気づきました。

ここではモデルが渡されていません。

それにもかかわらず、あなたはこれを行うことができています。

これはモデルプロパティを下位に渡すための安定した戦略であるとしか考えられません。なぜなら、ここで使用されているからです。何か注意点がありますか?

これらの利用可能なプラグインアウトレットがあまり役に立たないと感じた理由の1つは、関連するモデルが明示的に渡されることが少ないためです。

このパターンはどこかに文書化されていますか?Emberガイドでは見たことがありません…

「いいね!」 3

「raw」システムは、特定のディスコースの機能であるため、Emberのガイドには何も記載されていません。

コアコードで意図的に使用されているようですので、使用しても安全だと思います。

実際、rawアウトレットには、通常のプラグインアウトレットにあるような「args」を渡す機能はないようです。したがって、「context」が唯一の方法となります。

通常のプラグインアウトレットで不足していると思われる有用なデータがあれば、遠慮なくコアにPRを作成してください。アウトレットに新しい引数を追加することは比較的安全で、後方互換性があり、パフォーマンスへの影響もほとんどないため、拒否される可能性は低いです。

「いいね!」 7

プラグインのアウトレットに引数を渡すことにも苦労しました。私の目標は、ページにプラグインのアウトレットを配置し、そのアウトレットがそのページで他のコンポーネント参照が取得するすべての情報にアクセスできるようにすることでした。

私がコーディングしているテーマコンポーネントでこれを試しました。

{{~raw-plugin-outlet name="cool-outlet" args=(hash model=model)}}

しかし、Compile Error: raw-plugin-outlet is not a helper というエラーが発生しました。

これを機能させるために他に何かする必要がありますか?

raw-plugin-outlet.hbr で終わる「raw」テンプレート内でのみ使用できます。通常のEmberテンプレートでは {{plugin-outlet ...}} を使用してください。

「いいね!」 1

編集:以下の方が独自のトピックに適していることに気づきました。また、主な問題は、コンポーネントのアクションをプラグインアウトレットにインポートすることであることにも気づきました。それについては、ここで質問しました。


プラグインアウトレットに引数を正常に渡すための、より簡単な/標準的な方法はありますか?

たとえば:

テンプレートに、次のような composer-action-title コンポーネントへの参照があるとします。
composer.hbs:

 {{composer-action-title
       model=model
        openComposer=(action "openComposer")
        closeComposer=(action "closeComposer")
        canWhisper=canWhisper
        tabindex=8
  }}

そして、そのプラグインアウトレット内に同じコードを持つプラグインアウトレットを追加したいとします。
connectors/cool-outlet/cool-outlet.hbs:

 {{composer-action-title
       model=model
        openComposer=(action "openComposer")
        closeComposer=(action "closeComposer")
        canWhisper=canWhisper
        tabindex=8
  }}

cool-outlet プラグインアウトレットが composer-action-title コンポーネントを正常に参照できるようにするには、どうすればよいですか?

composer.hbs で次のような参照を使用する:
{{plugin-outlet name="cool-outlet" args=(hash model=model)}}
は機能しないようです。