テンプレートを外部ファイルにロードし、それらを使用する関数を作成しようとしていますjsrender
。ただし、次のエラーが発生します。
TypeError: elem.getAttribute is not a function
[Break On This Error]
value = $templates[elem.getAttribute(tmplAttr)];
console.logs
テンプレートがajaxで取得されたことを示すものがあります。
エラーの原因となる基本的なコードは次のとおりです。
var path = 'templates/myTemplate.tmpl.html';
var data = searchResultTeasers;
var target = $('#results');
$.ajax({
url : path,
aysnc : false,
success : function(template) {
console.log("Path", path);
console.log("Template", template);
console.log("Data", data);
//=============================================
// Save Template with url as name for future
//=============================================
$.templates(path, template);
//=============================================
// Get Template String
//=============================================
var templateString = $.templates(path);
//=============================================
// Render Template
//=============================================
renderedTemplate = templateString.render(data);
target.html(renderedTemplate);
}
});
エラーは jsrender.js (行 829) にあり、 $.templates(path); に関するものだと思います。しかし、何が間違っているのかわかりません。
プロジェクトの zip へのリンクは次のとおりです: http://sdrv.ms/QsZpQT
この記事に基づいて関数を作成しました: http://msdn.microsoft.com/en-us/magazine/hh975379.aspx
これがjsRenderに関連しているかどうかはわかりませんが、それでも続行できません。助けていただければ幸いです。