Я пытаюсь написать функцию для загрузки шаблонов во внешние файлы и использовать их с 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, но это все еще мешает мне продолжать, и я был бы признателен за любую помощь.
async: false
для вызовов ajax (и вы также написали с ошибкой async). - person MrOBrian   schedule 24.09.2012