【问题标题】:Trouble Moving coffee script snippets into its own class within rails麻烦将咖啡脚本片段移动到 Rails 中自己的类中
【发布时间】:2016-05-10 18:00:26
【问题描述】:

我被赋予了将这些咖啡脚本代码移动到一个类中的任务

format = (icon) ->
  originalOption = icon.element
  '<i class="fa ' + $(originalOption).data('icon') + '"></i> ' + icon.text

$(document).ready ->
  $('.select2-fountawesome-icon').select2
    width: '100%'
    formatResult: format

它是一个 Rails 应用程序,在 application.js.coffee 中工作。

这是我目前在scenario-page.js.coffee 中所拥有的

class @ScenarioPage
  constructor: ->
    @format()
    @enabledSelect2()

  format: (icon) ->
    originalOption = icon.element
    '<i class="fa ' + $(originalOption).data('icon') + '"></i> ' + icon.text

  enabledSelect2: () ->
    $('.select2-fountawesome-icon').select2
      width: '100%'
      formatResult: format

我用初始化实例方法/属性的构造函数创建了一个类。我放弃了document.ready,因为无论如何都会在它之后加载咖啡脚本。类中的函数应正确定义。我使用 try coffeescript 转换为 js,看起来是对的。我不确定我的新课程有什么问题?第一个 sn-p 确实有效。

【问题讨论】:

    标签: javascript ruby-on-rails coffeescript


    【解决方案1】:

    我在您的代码中看到两个错误:

    class @ScenarioPage #<---- @ shouldn't be here
      constructor: ->
        @format() #<---- the icon param is missing, which will cause an error below
        @enabledSelect2()
    
      format: (icon) ->
        originalOption = icon.element
        '<i class="fa ' + $(originalOption).data('icon') + '"></i> ' + icon.text
    
      enabledSelect2: () ->
        $('.select2-fountawesome-icon').select2
          width: '100%'
          formatResult: format
    

    如果我可以添加一些我会做的事情:

    class ScenarioPage
      constructor: ->
    
      format: (icon) ->
        originalOption = icon.element
        '<i class="fa ' + $(originalOption).data('icon') + '"></i> ' + icon.text
    
      enabledSelect2: () ->
        $('.select2-fountawesome-icon').select2
          width: '100%'
          formatResult: format
    
    $(document).ready ->
      scenario = new ScenarioPage()
      scenario.enabledSelect2()
    

    现在您只需在需要时调用格式化函数。 如果您有不清楚的地方,请随时问我。

    问候,

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 2013-06-19
      • 2013-01-09
      • 2017-10-18
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      相关资源
      最近更新 更多