0

Javascript でハンドルバー テンプレートを取得する必要があります。そこで、tpl フォルダーにテンプレート ファイルを作成し、ML にそのような行を書きました。

<resource type="download" name="tpl/" location="/tpl"/>

このフォルダーに画像を配置すると、CSS から取得できます。

.css
 {
background: url(tpl/image.png);
}

この画像をjsから取得したい場合AJS.$("css").css("background", "url(tpl/image.png)")、エラーが発生します-ファイルが見つかりません。

画像ファイルはたとえば..実際にはテンプレートを取得する必要があります

 AJS.$.ajax({
                    url: "tpl/backlog_coll.handlebars",
                    cache: true,
                    success: function(data) {
                        source    = data;
                        template  = Handlebars.compile(source);
                        $('#backlog_coll').html(template);
                    }
                });
4

1 に答える 1

0

これが私がそれを行う方法です

以下に示すように、一般的にアクセス可能な js ファイル (ここでは Global.js と呼びましょう) に関数を記述します。

GLOBAL.JS

function fnGetTemplate(strName) {
if (Handlebars.templates === undefined || Handlebars.templates[strName] === undefined) {
$.ajax({
   url : "tpl" + strName + ".handlebars",
   success : function(data) {
       if (Handlebars.templates === undefined) {
           Handlebars.templates = {};
       }
       Handlebars.templates[strName] = Handlebars.compile(data);
   },
   async : false
 });
}
return Handlebars.templates[strName];
}

これは、handlebars js ライブラリ (handlebars-v1.3.0.js のようなもの) が適切に参照されていることを前提としています。

次に、テンプレートを表示する必要があるビュー内で、以下に示すようにテンプレートを宣言します。

template: fnGetTemplate("backlog_coll");

私のビューのレンダリング関数内で、以下に示すように必要なデータを提供するこのテンプレートを呼び出します

render: function() {
    this.$el.html(this.template(data));
}

お役に立てれば

于 2014-06-20T15:33:34.477 に答える