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

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


person Juzer Ali    schedule 01.04.2012    source источник


Ответы (3)


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

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

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

Конечно, это еще не все, но это 60-секундный ответ. Это помогает?

person John Papa    schedule 01.04.2012
comment
Это, безусловно, помогает, можете ли вы дать ссылку на более полный ответ? - person Juzer Ali; 02.04.2012
comment
Вот статья, которую я недавно написал на JsRender... только что вышла сегодня в журнале MSDN: msdn.microsoft.com/en-us/magazine/hh882454.aspx - person John Papa; 02.04.2012
comment
Могу ли я по-прежнему использовать jsviews теперь, когда наблюдаемые устарели... просто хотел уточнить - person user1776573; 30.08.2016

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>

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

person Ronny    schedule 14.06.2013

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

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

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

person numediaweb    schedule 06.08.2015