昨夜、読み返すとひどく聞こえたという質問を投稿したので、それを削除して、今度は適切に再試行するために戻ってきました。
私は、Parsley を使用する Flex Mobile アプリを持っています。すべてが期待どおりに機能しますが、コントローラーで分離された結果ハンドラーを使用しようとしていますが、期待どおりに起動しないため、ポインターが必要です理由。
コマンドは次のようになります。
public function execute():void
{
var asyncToken:AsyncToken = Db.Instance.ViewChildren(mainModel.loggedInUser.userId);
asyncToken.addResponder(new Responder(result, error));
}
public function result(result:ResultEvent):void
{
callback(result.result);
}
public function error(event:FaultEvent):void
{
callback(event.fault);
}
これは期待どおりに機能し、コマンドが実行され、結果ハンドラーが結果を処理します。ビューのコントローラーにメッセージハンドラーを配置しようとすると問題が発生します。
[CommandResult]
public function handleResult(result:AsyncToken):void
{
trace("result in the controller");
}
[CommandError]
public function handleError(fault:AsyncToken):void
{
trace('error: ' + fault.fault.faultDetail);
}
これらのリスナーはどちらも結果が到着したときに起動しないため、当然のことを行い、コードを次のように変更しました。
[CommandResult]
public function handleResult():void
{
trace("result in the controller");
}
[CommandError]
public function handleError():void
{
trace('fault in controller);
}
これで起動しますが、データ ハンドルがありません。
コマンドの実行方法を次のように変更することを考えました
public function execute():AsyncToken
{
return Db.Instance.ViewChildren(mainModel.loggedInUser.userId);
}
結局、それは AsyncToken を返しますが、コマンドはまったく起動しません (これは、ChildEvent と呼ばれるイベントにマップされる 2 つのコマンド シーケンスの一部であり、これはチェーンの 2 番目で最後のイベントです。
要約すると、上記を機能させたいのですが、分離された結果ハンドラーで結果を管理できるようにしたいのですが、方法がわかりません。パセリのマニュアルは、この点に到達するのに最適です ( http:// www.spicefactory.org/parsley/docs/3.0/manual/?page=commands§ion=intro ) ですが、細かい部分は少し大ざっぱです。
ありがとう