1

それで、最近、大規模なプロジェクトをRails 3.1にアップグレードしました。アセット パイプラインがセットアップされ、機能しています。ただし、ソースは application.js にありますが、私たちが使用する多くのプラグインと私たちが作成したカスタム jQuery 関数は評価されていないようです。例えば:

   (function($) {
     $.fn.searchable = function() {
        ....
     }
   })( jQuery );

このコードは application.js に表示されますが、それを使用しようとすると、javascript エラー、未定義関数が発生します。ただし、すべてを関数定義でラップし、ドキュメントの準備ができたときにその関数を呼び出すと、機能します。

これは本当に醜い回避策です。関数にラップしないと機能しない理由はありますか?

ありがとう。

4

1 に答える 1

0

「coffeescript's namescope」を見てください。例えば

//define your js function as: 
this.some_function_name()  => 
  alert('hello~')

//call it as:
this.some_function_name()
于 2012-04-17T22:24:55.387 に答える