Есть ли более чистый способ распространения прикрепленных данных во вложенных шаблонах? - PullRequest
1 голос
/ 26 июля 2011

Чтобы сделать некоторые «глобальные значения» доступными в моем шаблоне, я указываю параметр «options» при вызове tmpl:

var globals = { aProperty: "foo" };

$("#tcontent").tmpl(data, 
      { globals: globals }) // <-- options
.appendTo("#content");

Затем я могу получить доступ к свойствам globals следующим образом:

${$item.globals.aProperty}

Затем, когда я вызываю другой шаблон из шаблона, мне нужно сделать следующее, чтобы гарантировать, что globals снова доступен во вложенном шаблоне:

{{tmpl(nestedValue, {globals: $item.globals} ) "#tnestedtemplate"}}

Это немного странно. Есть ли какой-нибудь другой более чистый механизм для того, чтобы сделать эти глобальные значения доступными в моих шаблонах?

1 Ответ

1 голос
/ 08 августа 2011

Если вы используете пространство имен своего JavaScript, вы можете добавить TemplateGlobals или подобное пространство имен:

Globals = {};
Globals.TemplateProperties = {};
Globals.TemplateProperties.TestProperty = "Test";

Теперь нет необходимости передавать объект globals при вызове .tmpl.Вы можете получить доступ к свойствам напрямую.Очевидным недостатком этого является то, что теперь эти свойства доступны для всего вашего кода JS.

${Globals.TemplateProperties.TestProperty}

Пример: http://jsfiddle.net/andrewwhitaker/CqVxS/

...