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

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

3 ответов


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

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

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

там больше для них, конечно, но это 60-секундный ответ. Это поможет?


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

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

//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>

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


документы:

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

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