Таким образом, шаблоны jQuery никогда не выйдут из бета-версии, а jsRender и jsViews должны заполнить пустоту. Я проверил примеры, опубликованные Борисом Муром на эта страница, но я не понимаю разницы между jsRender и jsViews. Более того, Борис использовал одно в примере с другим, чтобы добавить путаницы. Итак, вопрос в том, как два из них связаны (или различны)?
Разница между jsRender и jsViews
Ответы (3)
JsRender — это движок шаблонов. JsViews — это механизм привязки данных.
JsRender помогает отображать HTML с помощью шаблона (статический HTML/CSS со встроенными токенами, которые заменяются данными). Он поддерживает простую логику, значения рендеринга и пользовательские функции.
JsViews, созданный поверх JsRender, добавляет наблюдаемость к объектам/свойствам. Это позволяет вам связать ваши объекты json с целями HTML и получить двустороннюю привязку данных.
Конечно, это еще не все, но это 60-секундный ответ. Это помогает?
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>
Таким образом, при каждом появлении этого объекта он отображает шаблон. Здесь также есть вспомогательные функции. Вы можете использовать их для таких вещей, как возврат логического значения для теста, а затем воздействовать на данные как обертку во время связывания. Надеюсь, это поможет добавить к уже совершенному ответу, на который был дан ответ до этого ответа.
Из документов:
JsRender используется для рендеринга шаблонов в строки, готовые для вставки в DOM.
Он также используется платформой JsViews, которая добавляет привязку данных к шаблонам JsRender и предоставляет полноценную платформу MVVM для простого создания интерактивных одностраничных приложений и веб-сайтов, управляемых данными.