0

私はまだGrailsに比較的慣れていません。私はオンライン調査を開発しています。Web 上で解決策が見つからないように見える Webflow に関する問題が発生し続けています。多くの質問がある多くのトピックを持つクラス調査があります。私の Web フローでは、トピックと質問の量は、選択したアンケートに応じて動的に変化します。私の質問は、特定のものを取得してフロー変数に設定できる各トピックと質問 (配列またはリストのようなもの) を (Web フローで) どのように反復処理できるかということです。たとえば、Survey と Topic クラスを次のように指定します。

class Survey implements Serializable {

List topic
String surveyName
float version
static hasMany = [topic:Topic]

static constraints = {

    surveyName (blank:false)
}
}

およびトピック:

class Topic implements Serializable {

List primaryQuestion
String topicName
static belongsTo = [survey:Survey]
static hasMany = [primaryQuestion:PrimaryQuestion]


static constraints = {

    topicName (blank:false)
}
}

だから私は自分のフロー変数を設定します

    onStart {
        flow.survey = Survey.get(params.id)
    }

では、コントローラー内で個々のトピックと質問を取得するにはどうすればよいでしょうか? 私の目標は、「次」と「前」で各質問を表すビューを 1 つ持つことです。Web フローを理解しているので、これが可能であることがわかっています。それらすべてを同時に繰り返します。

4

2 に答える 2

0

私があなたの質問を正しく理解していれば、リストを繰り返し処理するだけです。まず、ヒント。ほとんどの場合、モデルをフロー スコープにプッシュする必要はありません。次の操作を簡単に実行できます。

onStart {
  [survey : Survey.get(params.id)]
}

そして、あなたの見解では:

<g:each in="${survey.topic}" var="topic">
  <g:each in="${topic.primaryQuestion}" var="question">
     ...
  </g:each>
</g:each>

もう 1 つのヒントとして、トピックを Survey ドメインのトピックに、primaryQuestion をトピックの primaryQuestions に名前変更します。その方が理にかなっています。

私がここから離れている場合は、質問を編集してもう少し明確にする必要があるかもしれません。

于 2012-07-28T21:47:32.843 に答える
0

私はついにGORMのドキュメントを調べてそれを理解しました。これは私が探していたものです:

flow.topics = flow.survey ? Topic.findAllBySurvey(flow.survey) : []

これにより、その調査内のすべてのトピックがリストに入れられ、次を使用してそれぞれを取得できます。

onEntry{
    flow.topic = flow.topics.get(i)
}

ご返信ありがとうございます。

于 2012-07-29T18:02:51.297 に答える