Подтвердить что ты не робот

Разница между jsRender и jsViews

Итак, шаблоны jQuery никогда не пройдут мимо бета-версии и jsRender и jsViews должны заполнить пустое место. Я проверил примеры, представленные Борисом Муром на этой странице, но я не понимаю разницу между jsRender и jsViews. Более того, Борис использовал один в примере другого, чтобы добавить к путанице. Итак, вопрос в том, как два из них связаны (или разные)?

4b9b3361

Ответ 1

JsRender - это шаблонный движок. JsViews - это механизм привязки данных.

JsRender помогает визуализировать HTML с помощью шаблона (статический HTML/CSS со встроенными токенами, которые заменяются данными). Он поддерживает простую логику, значения рендеринга и пользовательские функции.

JsViews, построенный поверх JsRender, добавляет наблюдаемость к объектам/свойствам. Это позволяет связать ваши json-объекты с целями HTML и получить привязку данных с двумя способами.

Там им больше, конечно, но что 60-й ответ. Помогает ли это?

Ответ 2

jsRender - это просто шаблоны, где jsViews - это шаблоны, но также привязка данных. Поэтому, если вы просто хотите выводить данные из объекта, списка или класса, то вы должны использовать jsRender. Следовательно, создайте шаблон. jsViews, был бы привязан к данным в реальном времени, среди многих других замечательных функций. Таким образом, если вы предоставили шаблон, используя его, и у него было поле, которое было привязано к базе данных, когда вы изменили его на стороне клиента, оно фактически изменило объект на тот, из которого вы его получили.

Например, здесь это реальное использование этого в этом маленьком фрагменте из моей работы.

//this is the script that handles the template
<script id="questionResourceTemplate" type="text/x-jquery-tmpl">
    <li class="default-{{:IsDefault}}">
        <label data-link="visible{:!IsPageSpecific}" class="surv mleft5"><strong>{{:Type}}</strong></label>
        <label data-link="visible{:IsPageSpecific}" class="surv mleft5"><input type="text" data-link="Type" /></label>
        <a data-link="visible{:IsDefault}" href="#" action="deletequestionresource">Delete</a>
        <br />
        {^{for QuestionResourceTexts tmpl="#textTemplate" ~parentQuestionResource=#data ~textboxClass="textbox" /}}
   </li>
</script>

И здесь он используется в HTML

<ul class="question-resource-list">
    {^{for QuestionResources tmpl="#questionResourceTemplate" ~parentQuestion=#data /}}
</ul>

Таким образом, при каждом возникновении этого объекта он отображает шаблон. Здесь у нас есть вспомогательные функции. Вы можете использовать их для таких вещей, как возврат логического значения для теста, а затем действие на данные, такие как время обертки привязки. Надеюсь, это поможет добавить к уже совершенному ответу, полученному до этого ответа.

Ответ 3

Из документов:

JsRender используется для визуализации шаблонов в строках, готовых для вставка в DOM.

Он также используется платформой JsViews, которая добавляет привязку данных к JsRender, и предоставляет полноценную платформу MVVM для легко создавая интерактивные приложения и веб-страницы, управляемые данными.