2016-08-15 19 views
1

CoffeeScriptのイベントハンドラのパラメータへのアクセス方法を教えてください。CoffeeScriptイベントハンドラのパラメータの取得方法

Dashing(http://dashing.io)でカラーピッカーウィジェットを作成しました。 カラーピッカーは、Spectrum(https://bgrins.github.io/spectrum/#events)に基づいており、onchangeイベントをカラーパラメータとともにパブリッシュします。

ユーザがパレット内の色をクリックすると、色の名前/コードがスペクトルカラーピッカーウィジェットによってフロントエンドに生成されます。

change: function(color) { 
    color.toHexString(); // i.e. #ff0000 
} 

カラーピッカーの実装ガイドはここにある:ここで

は、既存のColorPickerのコードがどのように見えるかの抜粋ですが、私は私のCoffeeScriptファイルで https://bgrins.github.io/spectrum/#events

$(@node).on 'change', (evt) => @handleChanged evt 

    postState: (newState) -> 
    $.post '/openhab/dispatch', 
     deviceId: @get('device'), 
     command: newState 

    handleChanged: (evt) -> 
    @postState("test") 

私は、スペクトルカラーピッカーのカラーパラメータにhandleChanged関数でアクセスしたいと考えています"test"プレースホルダの代わりにpostState関数に渡します。

私は通常、組み込み機器のレジスタレベルでCで作業しているので、この高レベルのCoffeescript、Ruby on Rails環境では100%紛失します。

+0

さらに、Pradeep氏の答えによれば、色の値はSpectrumウィジェットによってクライアント側で生成されます。ここにコードです: hide:function(color){ color.toHexString(); //#ff0000 } – user4165247

答えて

0

わけではありません直接

私は理解しているように、これは可能ことはできません。アセットやコーヒースクリプトコンパイラはレールエンジンに関連付けられていないため、アプリケーションから変数を取得できます。

あなたが代わりにユーザーに応答を与えるために、あなたのアクションでformat.html使用format.jsを使用して、あなたのaction.js.erbのファイル書き込みでのそれを

  1. を扱うことができる2つの方法があります。あなたのすべての変数を取得することができますあなたのJavaScript。
  2. アプリケーションから変数をクッキーに保存し、コーヒースクリプトでアクセスします。
+0

Pradeepに感謝しますが、色変数は、スペクトルウィジェットによってクライアント側のjQueryで生成され、レールでは生成されません。 – user4165247

関連する問題