ko.renderTemplate и requirejs загрузчик
Я хочу использовать функцию renderTemplate нокаута в проекте / модуле requireJS.
Я хочу загрузить шаблоны через плагин! Text или! Tmpl.
В настоящее время я получаю: "Uncaught Error: не удается найти шаблон с идентификатором..."
Обычный вызов будет выглядеть так:
ko.renderTemplate('personTmpl', { name:"test1" });
Но это будет искать в DOM что-то вроде:
<script id="personTmpl" type="text/javascript"/>
И тем самым создать зависимость от существующих dom-узлов
Но поскольку я создаю модуль requirejs, который выглядит следующим образом (упрощенно и не работает):
define(["knockout",
"tmpl!templates/persons.html",
"text!templates/persons.html",
],function(ko, personTmpl, personTmpl2){
ko.renderTemplate('personTmpl', { name:"test1" });
ko.renderTemplate('personTmpl2', { name:"test1" });
});
Requirejs не включает мой контент person.html как скрипт-тег!
Я не могу найти способ заставить ko.renderTemplate использовать что-либо кроме идентификаторов скриптов.
Как я могу сделать эту работу?
Одним из решений может быть загрузка шаблонов через requirejs, а затем передача их в тег скрипта, например так:
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.id = "url";
$("head").append( script );*/
Но мне не нравится такой подход.
Как заставить следующую работу?
define(["knockout",
"tmpl!templates/persons.html",
"text!templates/persons.html",
],function(ko, personTmpl, personTmpl2){
ko.renderTemplate(personTmpl, { name:"test1" });
ko.renderTemplate(personTmpl2, { name:"test1" });
});
Таким образом, вопрос может быть разбит на:
Как заставить это работать: (или что-нибудь, что эквивалентно)?
ko.renderTemplate('<div>huhu</div>', { name:"test1" });
или это:
ko.renderTemplate($('<div>huhu</div>'), { name:"test1" });