Я не уверен, насколько сложны шаблоны, которые вы вводите через dojo.cache, но рассматривали ли вы возможность использования dojo.create () в качестве альтернативы? Это позволит программно создавать элементы DOM.
Что касается вашего решения, я сначала был озадачен тем, что вы пытаетесь сделать, но, думаю, я понял это сейчас. На странице, на которой вы отображаете данные, вы хотите, чтобы пользователь мог выбрать некоторые данные для редактирования, и когда они выполнят это действие, на их месте появится соответствующий редактируемый контейнер, чтобы они могли изменить данные?
Если это так, то я определенно, что dojo.create () является лучшей альтернативой этому, чем HTML-шаблоны, извлеченные из dojo.cache.
dojo.create может быть легко использован с переменными, которые возвращаются из вашего вызова службы XHR, так что тип создаваемого элемента будет зависеть от ответа, который вы получите от сервера.
var editEle = dojo.create(data.elementType);
(при условии, что data - это имя переменной, в которой вы получили свой ответ, а elementType - это свойство для объекта, содержащего тип элемента, который необходимо создать.
Вы также можете передать литерал объекта во второй аргумент dojo.create, чтобы указать параметры на узле:
dojo.create('input', {type: 'text'});