Javascript 激活通过主干渲染的java脚本模板中的类

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='

我在javascript模板中有这个引导选择下拉过滤器,它通过主干视图呈现

<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()