0

FW1 サービス コールのしくみを説明できる人はいますか? 以下のマニュアルのセクションを読んだとき。私は以下がうまくいくはずだと思った。

参照: https://github.com/seancorfield/fw1/wiki/Reference-Manual

サービス メソッドには、コントローラ メソッドの実行後 (つまり、 before()、startItem() および item() の後) にリクエスト コンテキスト内にあるものに基づいて、名前付き引数のコレクションが渡されます。サービス メソッドは、FW/1 によって要求コンテキストに配置される結果を返す場合があります。デフォルトでは、FW/1 1.x は (最初の) サービス メソッド呼び出しの結果を rc.data に保存します。

controller/comparables.cfc

component { 
public any function init( fw ) {
    variables.fw = fw;
    return this;
}


public void function autocomplete( rc ) {
    // queue up a specific service (comparables.autocomplete) with named result (autocomplete)
    var args = StructNew();
    StructInsert( args, "table", "The Table" );
    StructInsert( args, "column", "The Column" );
    variables.fw.service( 'comparables.autocomplete', 'autocomplete', args );
}

}

service/comparables.cfc

component { 
public any function autocomplete( string table, string column, string term ) {      
    return "not yet implemented #table# #column# #term#";
}

}

次のビューは、rc.autocomplete = "まだ実装されていません" を表示します。

ビュー/comparables/autocomplete.cfm

<cfdump var="#variables.rc#" >
4

1 に答える 1

0

私は最終的にそれがどのように組み合わされているかを理解することができました. 次のサービス呼び出しはすぐに値を返しますが、上記のサービス呼び出しはコントローラー メソッドが終了するまで呼び出されません。

comp_serv = CreateObject("component","services.comparables");
rc.comparables = comp_serv.autocomplete( "table","colum","term" );
于 2012-11-07T20:57:33.940 に答える