Вызов метода CoffeeScript, определенного в другой файловой форме в шаблоне erb - PullRequest
1 голос
/ 03 апреля 2012

Разве я не могу вызвать этот метод CoffeeScript из шаблона erb? Это не работает, но кажется, что должно.

setup.js.coffee

class SetupStepTwo

  include @

  constructor: ->
    @resetView()

  resetView : ->
    console.log('cool');

window.ns1.SetupStepTwo = SetupStepTwo

$ ->
  new SetupStepTwo()

update.js.erb

window.ns1.SetupStepTwo.resetView();

1 Ответ

0 голосов
/ 03 апреля 2012

Ваш SetupStepTwo класс имеет экземпляр метод с именем resetView, но вы пытаетесь вызвать его как class метод (или, по крайней мере, тот, который передается как метод классав (Java | Coffee) Script), когда вы говорите следующее:

window.ns1.SetupStepTwo.resetView();

Если вы действительно хотите использовать resetView в качестве метода класса, тогда ваш класс должен выглядеть примерно так:

class SetupStepTwo
  constructor: ->
    @constructor.resetView()

  @resetView : ->
    console.log('cool')

@ на @resetView создает метод класса, а @constructor более или менее похож на self.class в Ruby.

Демонстрация: http://jsfiddle.net/ambiguous/eDdmd/

Есливы хотите, чтобы resetView был методом экземпляра, тогда вам нужно заменить это:

window.ns1.SetupStepTwo.resetView();

вызовом resetView для экземпляра SetupStepTwo.

...