Я использую can.js и пытаюсь предварительно скомпилировать и загрузить шаблоны. Я взял свои шаблоны и предварительно скомпилировал их с помощью can-compile, а затем загрузил их в получившийся скрипт. файл так:
(function(window) {
can.Mustache('block_tpl.mustache', '<template string goes here>');
}(this));
Я не думаю, что вы регистрируете его через «can.Mustache»? Кто-нибудь знает, как вы регистрируете предварительно скомпилированные шаблоны с помощью can.js?
Редактировать:
@Daff, когда я использую can.Mustache (кстати, я использую can.jquery), я обнаруживаю, что (а) can.mustache не определено, и (б), если, например, я наберу:
can.Mustache('jim_tpl', "<p>My name is Jim</p>");
...что когда дело доходит до конструктора Mustache:
var Mustache = function(options, helpers) {
if (this.constructor !== Mustache) {
var mustache = new Mustache(options);
return function(data, options) {
return mustache.render(data, options);
};
}
if (typeof options === "function") {
this.template = {fn: options};
return;
}
can.extend(this, options);
this.template = this.scanner.scan(this.text, this.name);
};
...там, где он создает новый Ус (стр. 3), он передает имя шаблона в качестве параметра arg. К тому времени, когда вы передадите его сканеру, fn в нижней части «параметров», которая была строкой имени шаблона, теперь становится объектом, каждое свойство которого представляет собой одну букву этой строки...