Javascript 随时更改underline.js模板变量
我想更新模板变量上的值,这样,如果用户单击它,它就会更改页面上的数据Javascript 随时更改underline.js模板变量,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我想更新模板变量上的值,这样,如果用户单击它,它就会更改页面上的数据 <script type="text/template" id="graph-template"> <% _.each(results, function(results) { %> <ul class="barGraph"> <li> <div class="left"><p><%= results
<script type="text/template" id="graph-template">
<% _.each(results, function(results) { %>
<ul class="barGraph">
<li>
<div class="left"><p><%= results.title %></p></div>
<div class="right">
<!-- THIS SHOULD CHANGE TO results.views if I statement is true without reloading data -->
<span class="bar" style="width: <%= Math.floor(results.totalCount / 1000) %>%;">
Total Views: <%= results.totalCount %>
</span>
<!-- THIS SHOULD CHANGE TO results.views if I statement is true -->
</div>
</li>
</ul>
<% }); %>
</script>
$('input[name="views"]').change(function(e) {
if( $(this).val() == 'total') {
resultsTemplating(sortByCount);
} else {
resultsTemplating(sortByAverage);
}
});
-
总视图:
$('input[name=“views”]”)。更改(函数(e){
如果($(this).val()=='total'){
结果模板法(sortByCount);
}否则{
结果模板法(sortByAverage);
}
});
在这种情况下,我会为结果集合中的每个项目添加一些ID,并通过它们更新项目。在任何更改之后,模板都应该用新数据更新并再次插入
这是一个单击的示例,但您可以更改它
var results = [
{ id: 1, title: 'Some title', totalCount: 2},
{ id: 2 ,title: 'Another title', totalCount: 3},
{ id: 3, title: 'Another title', totalCount: 4}
];
var compiled = _.template($('#graph-template').html());
$('#app').html(compiled({results: results}));
$('body').on('click', '.js-value', function() {
var $el = $(this);
_.each(results, function(item) {
if (item.id == $el.data('index')) {
item.totalCount += +$el.attr('value');
}
});
results = _.sortBy(results, 'totalCount');
$('#app').html(compiled({results: results}));
});
看小提琴
如果您有任何问题,请随时提问,因为可能我没有正确理解您的问题