2012-04-02 10 views
0

@onlyundefined(ログに30回記載)であるため、次のコードは機能しません。私は関数が範囲外で実行されると思うが、私はなぜ、どのようにこれを解決するのか分からない。オブジェクトを使用して日付を無効にする

class DateDisabler 

    constructor: (@only) -> 

    beforeShowDay: (date) -> 
    console.log @only 
    if @only == date.getDate() 
     [true, 'available', 'This date is a good date'] 
    else 
     [false, 'unavailable', 'This date is NOT good'] 

jQuery -> 
    $('.datepicker').each (i, e) -> 
    dates = $(e).data('only') 
    disabler = new DateDisabler dates 
    $(e).datepicker({beforeShowDay: disabler.beforeShowDay}) 

また、これは良いアプローチだと思うと思います。

.datepicker{data: {only: 5}} 

Here the fiddle:私は次のようですべてを処理するためのHTML divを取得しようとしています。申し訳ありませんが何らかの理由でそこに実行されません(あなたが知っていれば...)、少なくともそれが好きなhtmlとjsがあります。あなたはコールバック関数をインライン化できるようアレックスは、問題の根本的な原因についての権利であるが、CoffeeScriptの中this問題を回避するために、より慣用的な方法は、あなたがコールバック関数を定義するときfat-arrowを使用することです

答えて

1

感謝:

beforeShowDay: (date) => 
    #... 

これは、期待しているコンテキストに関数をバインドします。また、http://jsfiddle.net/のCoffeeScriptをサイドバーのパネルで選択して使用することもできます。

デモ:http://jsfiddle.net/ambiguous/Ztgsq/

+0

は魅力的に機能し、私はポイントを得ました。ありがとう@ムー!私はここであなたの答えから多くを学んだ。 – ecoologic

+0

@ecoologic:ありがとう、私はそれらを書く多くのことを学ぶ:) –

関連する問題