1

誰もこれを経験したことがありますか?私はベンダーの mustache.js 0.5.1 を持っています。私のベンダーのファイルは、Rails によって提供され、ブラウザーに表示されるものです。Mustache.to_html を呼び出すと、関数は実行されません (0.4.0 には がありませんMustache.render。これが、この問題を発見した方法です)。を呼び出すと、Mustache.version'0.4.0-dev' が返されます。何か、どこかで悪いことをしている。

  • vendor/assets/javascripts/mustache.js は 0.5.1 です。
  • Mustache.versionChrome コンソールでは「0.4.0-dev」が返されます...そのため、何かが Mustache プロトタイプを上書きしています。何か悪い。
  • code/rubymonk/tmp を削除しました
  • アセットキャッシュをバウンスしました
  • アセットをデバッグ モードに設定しました
  • プロダクションに切り替え、アセットをプリコンパイルし、長引くジャンクを探しました
  • ブラウザに 0.4.0 バージョンの口ひげがロードされていないようですが、0.5.1 コードは実行されません (追加した console.log ステートメントは実行されず、実際の口ひげファイルはヒットしません)。デバッガーによって)
  • 'mustache' と '0.4.0-dev' の code/rubymonk ディレクトリの完全な grep を実行しました.... nadda (予想外のもの)
  • ハード ドライブ全体を調べました (少なくとも Spotlight と同じように... しかし、かなりうまく機能しているようです)。
  • 'mustache' と '0.4.0-dev' の両方の gems ディレクトリを grep しました... 繰り返しますが、何もありません。

実際に何か間違ったことをしている場合は、並べ替えたら解決策を投稿します。

-s-

4

1 に答える 1

1

解決しました!Mustache私たちのアプリは Intercom (http://intercom.io) を使用していますが、それ以外は素晴らしいですが、ダウンロードしたインターコム Javascriptがグローバル名前空間で吹き飛ばされているようです。

私は彼らにメッセージを送り、彼らのものに名前を付けるように依頼します。それまでは、mustache.js の独自のコピーをいじって、別の名前空間にする必要があると思います。つまり、次を追加します。

var MyApp = MyApp || {};

Mustacheの出現箇所をに置き換えますMyApp.Mustache

うまくいけば、これは他の誰かに役立ちます。そうでない場合でも、少なくとも、StackOverflow の海で一時的なボートのセーリングを楽​​しむことができます。

-スティーブン

PS: クライアント側で純粋な Javascript で口ひげパーシャルをレンダリングしようとしていたため、これを発見しました{{ > mypartial }}

于 2012-06-27T05:01:49.473 に答える