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" });

0 ответов

Другие вопросы по тегам