問題タブ [robotlegs]
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.
apache-flex - Robotlegs Flex - creationComplete 後に初期化されるメディエータをどのように処理しますか?
Robotlegs フレームワークを使用して Flex アプリケーションを構築しようとしていますが、ビュー コンポーネントの creationComplete イベントの後でのみ、メディエーターの作成 (-> onRegister が呼び出されます) を処理する方法がわかりません。
私のアプリケーションは起動時にいくつかの XML ファイルをロードし、モデルはファイルから作成され、データとともにイベントをディスパッチします。問題: 起動時に埋め込み/ローカル ファイルを「ロード」すると、モデル イベントはメディエーター リスナーが追加される前にディスパッチされますが、メイン コンテキストで初期データ ロードをトリガーする前にモデル イベントがマップされます。
メディエーター onRegister でイベントを手動でディスパッチするよりも、flex で robotlegs を使用していて、これを回避する「よりクリーンな」方法を見つけた人はいますか? そうすることで、「自動」メディエーションはもはや自動ではなくなります...
編集:
最小限のコード例:
環境:
override public function startup( ):void{
mediatorMap.mapView( EditorMenu, EditorMenuMediator );
commandMap.mapEvent( ContextEvent.STARTUP, LoadConfigurationCommand );
dispatchEvent( new ContextEvent( ContextEvent.STARTUP ) );
}
LoadConfiguration コマンド:
[Inject] public var configurationService:IXMLLoader;
override public function execute():void{
configurationService.loadXML();
}
構成サービス:
public function loadXML(){
trace( "xml loaded" );
dispatch( new XMLLoadedEvent( XMLLoadedEvent.CONFIGURATION_LOADED, result ) );
}
EditorMenuMediator:
override public function onRegister( ):void{
trace( "menu onregister" );
addContextListener( XMLLoadedEvent.CONFIGURATION_LOADED, handleXmlLoaded, XMLLoadedEvent);
}
トレース「menu onregister」は、トレース「xml loaded」の前に発生しているため、メディエーターは XmlLoadedEvent がディスパッチされたときにリッスンしていません。
apache-flex - Flex/AS3 で Cookie ベースのセッションを使用してサービスをテストする方法
ここに初めて投稿します。問題を確認していただきありがとうございます。
タイトルが示すように、質問はフレックス アプリケーションのサービス レイヤーに関するものです。具体的には、テスト ケース クラスで。サービスを呼び出すには、ユーザーは最初に html/CF ベースのページで認証する必要があります。それが完了し、認証が行われると、ユーザーはフレックス アプリケーションが埋め込まれた html ページに誘導されます。認証されると、サーバー側の CF コードがユーザーのコンピューターに Cookie を書き込みます。この Cookie はフレックス アプリによって読み取られ、フレックス アプリが CF サービスを呼び出すために必要です。
問題は、フレックス アプリのサービス クラスのテスト ケース クラスでこれをどのように処理する必要があるかということです。基本的に次の手順を実行する必要があります: アカウント データを使用してサーバーにアクセスして認証し、Cookie を書き込む必要があります (既に書き込まれています)。次に、テスト ケースで Cookie からセッション ID を取得して渡す必要があります。テスト ケース内のサービス コールに追加します。これは、テスト ケース クラスには多すぎるように思えます。
では、この種のことは通常どのように処理されますか。私が収集したものから、Web サービスの呼び出しでこのようなセッション ID が必要になるのは一般的です。
ご意見、ご感想、ご提案などをお待ちしております。
お時間をいただきありがとうございます。また、情報を提供していただきありがとうございます。
ショーン
apache-flex - MVC のモデル側で明確化が必要
モデルに関連するいくつかの概念について、本当に良い説明が必要だと思います。
一般に、モデルは、Robotlegs のようなフレームワークで説明されているように、アプリケーション状態ホルダーまたはドメイン状態ホルダーの役割を果たしますか? 私は当初、モデルは完全にドメイン ベースであると考えていました。つまり、UserModel、LocationModel は、サーバー上で DAO クラスが果たす役割と同じ役割を果たします。ソース コードを調べれば調べるほど、UserAccountModel や ShoppingCartModel など、ドメインの状態ではなく、クライアント アプリケーションの状態に関連するプロパティやメソッドでいっぱいになっていることがわかります。
ユーザーが複雑な関係を VO クラスに追加することを気にしないことがわかります。つまり、User が大量の写真を持っている場合、写真コレクションは明らかに UserVO クラスから省略されます。代わりに、ユーザー ID を使用したサービス呼び出しに基づいて、必要に応じて一連の PhotoVO オブジェクトがサーバーから読み込まれます。それはある種の経験則ですか? 一般的に、VO を可能な限り「むき出し」に保つのですか? これにより、すべてのデータを取得するためにサーバーに対して行わなければならない呼び出しの数が増えることはありませんか? さらに、それは一般的にドメインモデルを断片化していませんか? (サーバー上のエンティティ User クラスには常に photos プロパティがあります)
サーバーへの呼び出しが非常に多いため、クライアント ストレージに既に存在する可能性のあるオブジェクトをフェッチするのが普通です。クライアント側のキャッシュを作成し、フェッチされるオブジェクトが既に存在するかどうかを確認することは理にかなっていますか、または一般的に、完全に同期されたオブジェクトを取得することの利点によって、もう一度取得するオーバーヘッドが支払われますサーバーから。そうしないと、変更が発生したときに、クライアント側のキャッシュに保存されているすべてのオブジェクトを処理する必要があります。個人的には、サーバーからオブジェクトを取得するオーバーヘッドは、以前に取得された可能性があるため、それほど大きくないと思います。私が言うには、新鮮で同期されたデータが必要です。
apache-flex - その場で特定のモデル実装を注入する [Robotlegs]
その場でのモデル注入は可能ですか? つまり、IPhotoModel 型のモデルを要求すると、ビューの現在の状態に基づいてその実装の 1 つを取得する必要があります。UserPage を見ている場合、そのモデルのユーザー固有の実装を取得する必要があります。LocationPage を見ている場合は、場所固有の実装を取得する必要があります。
現在、私が見る唯一の方法は、現在のビューステートに基づいた具体的なモデルマッピングを指定するコマンドを導入することです...
何かのようなもの...
インジェクター.mapValue(IPhotoViewModel、インジェクター.getInstance(UserPhotoViewModel))またはインジェクター.mapValue(IPhotoViewModel、インジェクター.getInstance(LocationPhotoViewModel))
これは可能な限り最良の方法ですか?コンテキストの外で多くの結合ロジックを導入したくはありませんが...
apache-flex - プレゼンテーションモデルでは、特定のロジックをビューに表示できますか?
私は現在、プレゼンテーションモデルパターンでRobotLegsを使用して、Flex4プロジェクトを開発しています。ビューに関連するすべてのビジネスロジックがそのビューに関連付けられたプレゼンテーションモデルに存在することを理解していますが、ビュー固有のロジックに関しては混乱しています。
たとえば、選択されているリストアイテムに応じて、リストアイテムに対して相対的に配置する必要があるインジケーターがあります。プレゼンテーションパターンで、インジケーターをビューに配置するロジックを配置し、プレゼンテーションモデルで変更されたselectedIndexプロパティに反応してそのロジックを実行することは許容されますか?
私がこれを検討している理由は、プレゼンテーションモデルにはビューへの参照がないため、ビューコンポーネントを操作するための理想的なソリューションを思い付くことが難しいためです。
dependency-injection - 依存関係の挿入の更新ロジックの場所
ここでの依存性注入はまったく初めてです。
依存性注入を使用して Twitter クライアントなどを構築している場合、特定の間隔 (たとえば 5 分) でストリームを更新することを制御するロジックはどこに格納する必要がありますか?
air - robotlegsを使用したFlexNativeMenu
Robotlegsフレームワークを使用していますが、AIRデスクトップアプリケーションで忙しく、FlexNativeMenuを使用したいと考えています。問題は、依存性注入のためにmx.controls.FlexNativeMenuに基づいてビュークラスを作成できないことです。Robotlegsを使用しない場合、コードは非常に単純です-どんな助けでもありがたいです。ありがとう。
flash - コマンドリストとロボットレッグ
Heyooo 私はコマンドリストを robotlegs に組み込みたいと思っています。私が今行った方法は、コマンドリスト アクターがビジー状態でないときにすべてのコマンドを漏らしてしまうことですが、コマンドが実行されると、robotlegs は「contextView」への参照を失います。つまり、私は何か間違ったことをしています。
CommandLists と Robotlegs に関する役立つヒントはありますか? これまでに数え切れないほど行われていると思うからです。