0

私は次のことをする必要があります、

私は<select>(チーム名のリスト)を持っています。ユーザーがチームを選択すると、チームに関する関連情報を取得して表示します。

翡翠でこれを行うにはどうすればよいですか?

私は次のことを試みています(しかし、私は明らかに間違っています、私はそこに多くのドキュメントを見ていません)。

include test.jade簡単に言えば、私は私のメインページでやっています、そしてres.render('test', {team: team_obj});

翡翠:

h1 #{team}.name
h2 #{team}.homeGround
h3 #{team}.manager
h4 #{team}.aka

nodejs:

collection.findOne(query, function(err, team_obj){
    res.render('test', {team: team_obj});
});

で情報を正しく取得していteam_objます。

アプリを実行すると、次のエラーが発生します。

チームが定義されていません

test.jadeフィードする前にレンダリングされるため、これが発生していteam_objます。

質問:

1)私はこれを正しく行っていますか?include翡翠のビューを部分的にレンダリングする正しい方法はありますか?はいの場合、ユーザーが?を選択した場合にのみレンダリングされるようにするにはどうすればよいoptionですか?

2)私が知らない翡翠に部分的なビューの概念はありますか?

4

1 に答える 1

0

1)使用する必要があります#{team.name}

2) セレクターが変更されると、チーム オブジェクトを変更することはできません。テンプレートは、データベースの結果で一度レンダリングされました。- このような機能は、クライアント側の JavaScript および AJAX 呼び出しで処理する必要があります。テンプレートのパーシャルは、テンプレートの共通部分を共有するための単なる方法であり、Jade ではinclude.

何をレンダリングしていつインクルードするのかはわかりませんが、 #{team.name} のようなテンプレート変数を使用する場合は、テンプレートがチーム オブジェクトでレンダリングされていることを確認する必要があります。

于 2013-02-12T16:57:32.577 に答える