使用车把模板从视图中打印Backbone模板中的javascript变量

时间:2016-08-29 15:05:42

标签: javascript ruby-on-rails backbone.js handlebars.js backbone-views

以下是我的问题的详细信息。

第1步:

在我的rails show.html.erb文件中,我保存了一个javascript变量。

<Button Style="{StaticResource nsdsButton}" />

这个工作正常,通过源代码可见。

第2步:

在初始化我的Backbone Controller和视图时,我已将其作为参数传递

var js_current_service_name = '<%= @application_service.service.name %>';

第3步:

它成功地到达了骨干视图:

@collection_plan = new Fastconnect.Collections.AppServicePlans(js_service_plans)

@appServicePlansIndexView = new Fastconnect.Views.AppServicePlansIndex({collection: @collection_plan, current_service_name: js_current_service_name})

第5步:

在我的index.hbs中,我必须在index.hbs中使用它。如何打印或放置if条件。我之前使用{{}}或{{{}}}完成了这两项工作,但现在它们都没有用。

这是我的index.hbs

class Fastconnect.Views.AppServicePlansIndex extends Backbone.View
    el: '#backbone-app_service_plans'
    template: HandlebarsTemplates['service_plans/index']
    inprogress_class: '#service_plans_body'

    limit: 20

    initialize: (options) ->
      @current_service_name = options.current_service_name

      console.log(@current_service_name)

      @collection.bind 'reset', @reset, @
      @reset() if @collection.length > 0

    render: ->
      @$el.html @template()

    _elementFromModel: (model) ->
      view = new Fastconnect.Views.AppServicePlansItem model: model

      res = view.render().el
      $(res).hide()
      return res

    addOne: (model) ->
      res = @_elementFromModel(model)
      @$el.find(@inprogress_class).append $(res).fadeIn('slow')

    addAll: ->
      @collection.first(@limit).forEach(@addOne, @)

    clearTable: ->
      @$el.find(@inprogress_class).html('')

    reset: ->
      @render()
      @addAll()

    events:
      "keyup #search_input" : "filterCollection"

    filterCollection: ->
      search = $('#search_input').val()

      if search
        console.log("clear karo1")

        filtered = @collection.filterCollection(search)
        @clearTable()
        console.log("clear karo")
        filtered.forEach(@addOne, @)
      else
        @addAll()

奇怪的是我有一个item.hbs文件,其中这个括号工作正常。

这是我的item.hbs文件。

<div class="row service_plans connections">
    <div class="col-md-12">
      <h4>{{ current_service_name }} Suppliers {{{ current_service_name }}} </h4>
    </div>


    <div class="col-md-12 table-responsive">

      <div class="row main_inner_nav">
        <div class="col-md-2 col-sm-2">
          <i class="fa fa-search"></i>Search
        </div>
        <div class="col-md-10 col-sm-10">
          <div class="form-group">
             <input id="search_input" class="form-control" placeholder="type a Plan Name, Supplier Name or Lodgement Email">
           </div>
        </div>
      </div> 

      <table class="table table-striped">
        <thead>
          <tr>
            <th>Plan Name</th>
            <th>Connection Type</th>
            <th>Billing Method</th>
            <th>Usage</th>
            <th>Supplier Name</th>
            <th>Lodgement Email</th>
            <th>Assignment</th>
          </tr>
        </thead>
        <tbody id="service_plans_body">

        </tbody>
      </table>
    </div>
</div>

最终查询:我需要在index.hbs中打印一些变量,就像我在item.hbs中打印东西一样。

提前多多感谢!

0 个答案:

没有答案