1

一連の質問 (および回答の種類) がサーバーによって設定されるアンケート アプリケーションを作成しています。これは私のスコープにあるもののサンプルです(これはコーヒースクリプトですが、アイデアは得られます):

        $scope.groups = [
        {
            id: "basics"
            text: "The Basics"
            questions: [
                {
                    id: "project_text"
                    text: "What's the name of the project?"
                    type: {
                        name: "Short Text"
                    }
                }
                {
                    id: "currency_type"
                    text: "Choose your currency"
                    type: {
                        name: "Enum"
                        options: ["$", "£", "€"]
                    }
                }
            ]
        }
        {
            id: "dev"
            text: "Development"
            questions: [
                {
                    id: "dev_cost"
                    text: "How much will development cost?"
                    type: {
                        name: "Integer"
                    }
                }
            ]
        }
    ]

問題は、私の見解では、必要な入力がスコープの状態によって設定されるため、事前にわからないことです (上記の Enum、Integer、Short Text を参照してください。後でさらに説明があります)。

Angularでこれを行う良い方法は何ですか? 私の最初のアイデアは、params に基づいて適切なディレクティブをアクティブにするディレクティブを作成することです (おそらく、関連する要素を dom に挿入することによって、これは可能ですか?)、または必要なすべての入力をそれ自体に含めて適切なものを挿入します。ただし、これが適切な方法かどうかはわかりません。

これに挑戦してくれる人はいますか?ありがとう!

4

1 に答える 1

1

あなたが使用することができます

ng-show="expression"

式が評価された場合にのみいくつかの要素を表示するtrue

例えば:

<div ng-show="foo.bar">I will be visible when foo.bar exists</div>

より複雑な条件が必要な場合は、 を使用するng-switchか、ui-ifAngularUI のディレクティブを使用します。これは、同じ切り替えを行う冗長な方法ではありません。

于 2013-03-20T09:12:34.317 に答える