Нэнси - Супер Простой Двигатель Представления: Nested @Each - PullRequest
8 голосов
/ 30 марта 2012

Поддерживает ли SSVE вложенные итераторы?

Я собираюсь пройтись по графу объектов в моем представлении SSVE (см. Ниже), но я подозреваю, что вложенные итераторы не являются подходящим способом. Есть ли другой подход?

Я знаю, что SSVE был предназначен для внутреннего использования и не предназначен для полного производственного использования, так что никаких проблем, но я не хочу добавлять ссылку на Razor и портить мой файл web.config, если в этом нет особой необходимости.

Вид вложенного итератора (моя лучшая догадка)

@Master['_Master']

@Section['Content']
    <h1>Assessment - @Model.survey.title</h1>
    @Each.survey.pages 
        <div>
            <h2>@Current.title</h2>
            @Each.questions
                <div>@Current.title</div>
            @EndEach
        </div>
    @EndEach
@EndSection

Ответы [ 2 ]

20 голосов
/ 11 ноября 2014

Этот вопрос сейчас довольно старый, но все еще появляется в топ-результатах поиска в Google для каждого из них, используя Super Simple View Engine.В случае, если кто-то еще сталкивается с этим, знайте, что в SSVE была добавлена ​​поддержка частичных представлений внутри каждого.(Я использовал его для выполнения именно такого вида вложенности View - итерации по коллекциям внутри коллекций.)

Таким образом, вы можете добиться желаемого эффекта, используя два представления, где внешнее выглядит так:

@Master['_Master']

@Section['Content']
    <h1>Assessment - @Model.survey.title</h1>
    @Each.survey.pages 
        <div>
            <h2>@Current.title</h2>
            @Partial['QuestionList', Current.questions]
        </div>
    @EndEach
@EndSection

И тогда другой вид (который SSVE найдет с именем QuestionList) выглядит следующим образом:

@Each
    <div>@Current.title</div>
@EndEach

Хотя это приводит к довольно многим файлам, вы должны иметь возможность получитьна произвольную глубину, повторяя эту схему.

2 голосов
/ 02 апреля 2012

Нет, это не сработает - SSVE - это просто регулярное выражение. Он должен поддерживать частичное внутри каждого, но в настоящее время это не так.

...