Javascript 激活通过主干渲染的java脚本模板中的类
我在javascript模板中有这个引导选择下拉过滤器,它通过主干视图呈现Javascript 激活通过主干渲染的java脚本模板中的类,javascript,ajax,backbone.js,Javascript,Ajax,Backbone.js,我在javascript模板中有这个引导选择下拉过滤器,它通过主干视图呈现 <script type="text/template" id="activities-template"> <div class="span22"> <div class="members"> <select class="selectpicker" multiple title='
<script type="text/template" id="activities-template">
<div class="span22">
<div class="members">
<select class="selectpicker" multiple title='<i class="icon-filter"></i> Filter By'>
<% _.each(project_users, function(user){ %>
<option id=<%= user.id %>><%= user.first_name %></option>
<% }); %>
</select>
</div>
</div>
</script>
当我单击处于选中状态的下拉项时,会发出ajax请求以获取数据。。。然后再次启用selectpicker。从而丢失以前的状态(不是显示上次选择的选项,而是将所有下拉选项显示为未选择)
问题似乎在于如何仅启用一次选择选择器?最简单的方法是在选择选择器上添加一个类,并且仅在该类不存在时激活它:
@activities.fetch
success: (activities) ->
activities_html = that.template
activities: _.groupBy activities.toJSON()
has_more: that.activities.has_more
that.$el.html activities_html
select_picker = $('.selectpicker')
unless select_picker.hasClass 'active'
select_picker.addClass('active').selectpicker()
请注意,只要不重新渲染主干视图,这将起作用。如果你这样做,你将失去“主动”类。这可能是您的
被重置的真正原因;如果是这种情况,则应跟踪视图中的当前选择,并更新模板以在渲染时使用该模板。例如,您可以将“active_id”变量传递给模板;如果存在,则将该选项设置为显示,并将“活动”类添加到
中
@activities.fetch
success: (activities) ->
activities_html = that.template
activities: _.groupBy activities.toJSON()
has_more: that.activities.has_more
that.$el.html activities_html
select_picker = $('.selectpicker')
unless select_picker.hasClass 'active'
select_picker.addClass('active').selectpicker()