Должна делать вот что:
Есть JS-переменная - массив объектов (или массивов, неважно). Каждый объект массива представляет собой набор атрибутов Yii модели и передается в JSON.
Нужно чтоб библиотека умела их рендерить по шаблону.
Т.е. задаешь шаблон модели - а она автоматом рендерит, и при изменении переменной - перерендеривает.
И чтоб была на jQuery ))
Заранее спасибо.
Подскажите JS библотеку...
Re: Подскажите JS библотеку...
Вам поможет шаблонизатор для JS. Например такой:
Так будет выглядеть html шаблон
Использовать можно так:
Код: Выделить всё
function tmpl(str){
var fn = new Function("obj",
"var p=[],print=function(){p.push.apply(p,arguments);};" +
// Introduce the data as local variables using with(){}
"with(obj){p.push('" + document.getElementById(str).innerHTML
.replace(/[\r\t\n]/g, " ")
.split("<%").join("\t")
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%>/g, "',$1,'")
.split("\t").join("');")
.split("%>").join("p.push('")
.split("\r").join("\\'") + "');} return p.join('');");
return fn
}
Код: Выделить всё
<script type="text/html" id="user_tmpl">
<% for ( var i = 0; i < users.length; i++ ) { %>
<li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
<% } %>
</script>
Код: Выделить всё
// Объект users получаете Ajax'ом
var users = {
0: {url: 'user url 1', name: 'user name 1'},
1: {url: 'user url 2', name: 'user name 2'},
2: {url: 'user url 3', name: 'user name 3'},
}
// Получим готовый html для дальнейшей вставки в тело документа
var r = tmpl("item_tmpl", users);
Re: Подскажите JS библотеку...
Вот, можно сказать, хедлайнеры js шаблонизации
https://github.com/jquery/jquery-tmpl
https://github.com/janl/mustache.js
http://akdubya.github.com/dustjs/
JSON для них как родной.
Насчет "и при изменении переменной - перерендеривает" , это скорее всего надо будет доделать самому.
https://github.com/jquery/jquery-tmpl
https://github.com/janl/mustache.js
http://akdubya.github.com/dustjs/
JSON для них как родной.
Насчет "и при изменении переменной - перерендеривает" , это скорее всего надо будет доделать самому.