0

そこにいるオーパの人々へ、私は先週末ずっとこの問題に困惑していました.

私がビューでやろうとしているのは、Model データ呼び出しによって返された DBSet を繰り返し処理し、それぞれがクリック イベント ハンドラーにバインドされたレコードの XHTML テーブルを生成することです。このクリック イベント ハンドラーに、反復レコード タイプのプロパティ、またはレコード自体を引数として受け入れてもらいたいと考えています。type team = { string team_id, ...etc} ビューにフォームがあり、最後にクリックされたテーブル行の値を入力に入力したいのですが、これはイベント ハンドラーが行うことです --- 適切なパラメーターが渡された場合でも。

どうすればいいですか?

このようなイベントハンドラーをバインドするためにXHTMLを少し取得しようとしています

<tr onclick={ otherExposedFunctionIWantToCall(team) }> 

また

<tr onclick={ otherExposedFunctionIWantToCall(team.team_id) }>

私がやろうとしている最新のことの 1 つは、カスタム タイプである team に設定した team_id プロパティにアクセスできるかどうかを確認することです。

function teams_management_view(){
    tbody = Iter.fold(
          function(team, acc){
            <>{acc}<tr onclick={ function(_){ Log.info("click", {team.team_id})}}><td class="team_id">{team.team_id}</td><td class="team_name">{team.name}</td></tr></>
          },
          TeamModel.get_teams(),
          <></>
        )
  ...
}

これらのイベント ハンドラーのいずれの形式も、反復コードで使用したときにコンパイルできませんでした。

これが機能しないのはなぜですか?動的レコードを繰り返し処理しているという問題はありますか? そのような関数をイベントにバインドすることはできますか?
Opa クライアント側のイベントには、イベントのターゲットにアクセスする方法がありますか? 目標を達成するためのオプションは何ですか?

誰かがこの質問の一部を理解するのを手伝ってくれるなら、私は大いに感謝します!

4

1 に答える 1

0

ばかげた私は、チーム変数が完全に関数のスコープ内にある (イテレータに渡される) という事実を完全に無視していたことがわかりました。

int フィールドである team_id を文字列としてキャストしていないことが判明しました...

これが機能することがわかりました:

<tr onclick={ function(_){ setTeamView("{team.team_id}")} }>

一方、これは以前からエラーを出し続けていましたが、

Expression has type
    void
    but is coerced into
    FunAction.t

<tr onclick={ setTeamView("{team.team_id}")}>

最初に示した例で明らかなように、カスタム関数は最初に無名ラッパー関数でラップするのが最適です。team.team_id の文字列キャストは、最初のケースでのみ機能しました。

私が推測する次のものに!

于 2012-10-10T01:13:41.053 に答える