HTML5アプリでjQueryでmustache.jsを使用したいのですが、すべてのコンポーネントを連携させることができません。すべてのファイルが見つかりました。ここでは問題はありません(テンプレートはロードされています。Firebugdebugguerでその値を確認できます)。
これが私のindex.htmlです:
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"></head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="../js/jquery.mustache.js"></script>
<script src="../js/app.js"></script>
<div id="content"></div>
</body>
</html>
これが私のapp.jsファイルです:
$(document).ready(function() {
var template = $.get('../templates/article.mustache');
$.getJSON('../js/article.json', function(view) {
var html = Mustache.to_html(template, view);
$("#content").append(html);
});
});
Jquery.mustache.jsファイルは https://github.com/janl/mustache.js から生成されたものです:
/*
Shameless port of a shameless port
@defunkt => @janl => @aq
See http://github.com/defunkt/mustache for more info.
*/
;(function($) {
// <snip> mustache.js code
$.mustache = function(template, view, partials) {
return Mustache.to_html(template, view, partials);
};
})(jQuery);
注意が表示されます。 Firebugは私に教えてくれます
口ひげは定義されていません
キャプチャを参照してください:
何かが足りないことは知っていますが、何がわからないのです。
ありがとう。
[〜#〜]編集[〜#〜]:最小に対する正解と完全な回答例は次のとおりです。
$.mustache.to_html
の代わりにMustache.to_html
関数を使用します(ありがとう @ mikez302 )$(document).ready(function(){ var template = "... {{title}} ..."; var json = {title: " titre article "} var article = $ .mustache(template、json); $("#content ")。append(article); });
しかし、別のファイルからjsonを読み取るのは簡単です:
$(document).ready(function(){ var template = "... {{title}} ..."; $ .getJSON( '.. /js/article.json'、function(view){ var article = $ .mustache(template、view); $( "#content")。append(article); }); });
最後に、ファイルからテンプレートを読み取ることもできます。
$(document).ready(function(){ $ .getJSON( '../ js/article.json'、function(view){ $ .get( "../templates/article.mustache"、function(template){ var article = $ .mustache(template、view); $(" #content ")。append(article) ; }); }); });
作業例(ロード順序の問題なし):
$(document).ready(function(){ $ .getJSON( '../ js/article.json'、function(model){return onJSON(model);}); }); function onJSON(model){ $ .get( "../ templates/article.mustache"、function(view){ var article = $ .mustache(view、model); $( "#content")。append(article); }); }
Mustache.to_html
の代わりに、$.mustache
を試してください。 Mustache
変数は関数内で定義されているように見えるので、関数の外部から直接アクセスすることはできません。
私はこの質問がすでに回答されていることを知っていますが、私はこのトピックについて正確にブログ投稿を書き、jQueryでMustacheを使用する方法の例を探している人なら誰でも見ることができるように、ここで共有すると思いました。