状況:
DrawLogicという名前のクラスがあり、これは(coffeescriptで)次のようになります:
class DrawLogic
mark: =>
do something
etc ....
@DrawLogic = new DrawLogic
後でHTMLページで「動的定数」を作成します。つまり、サーバープログラムから取得した名前を使用/入力/一度だけ使用したい
<script>
DrawLogic.NameSpaceName='orion42';
....
</script>
これまでのところ問題なく、動作しています
次に、(svg) 要素の jQuery を拡張します (クラス DrawLogic 内)。
class DrawLogic
....
init: ->
jQuery.fn.td_data = (attr_name) -> #look at the '->'
do something with 'this'
#the element of selector works fine
#to use the "DrawLogic.NameSpaceName" pseudo constant
#i have to write:
window.DrawLogic.NameSpaceName #was orion42 before
etc...
しかし、私は "DrawLogic クラス"内にいます。クラス スコープ内で '=>' i を使用し、this または (@) this.NameSpaceName
(の代わりにwindow.DrawLogic.NameSpaceName
) を使用する場合は、セレクターの「要素」を失います。
それでどうやって?「window.DrawLogic.NameSpaceName」を使用するよりも、私が内部にいるクラスを参照するためのより良い解決策はありますか? 私は自分自身を繰り返したくない...
明確に言うと、「DrawLogic」を4回だけ入力する必要があります(coffescriptで3回、HTMLで1回ですが、jQueryエクステンデット関数の各参照で使用する必要があります:-(
より良い解決策はありますか?