Я использую плагин шаблона jQuery и вызываю плагин из класса.
В примере под названием
Пример: использование параметра options тега {{tmpl}} для предоставления метода showLanguage.
На следующей странице
http://api.jquery.com/template-tag-tmpl
Они используют пример, подобный этому:
$( "#movieTemplate" ).tmpl( movies, {
languageOptions: {
showLanguage: function showLanguage( name ) {
return name.toUpperCase();
}
}
}).appendTo( "#movieList" );
<script id="movieTemplate" type="text/x-jquery-tmpl">
<tr>
<td>${Name}</td>
<td>{{tmpl(Languages.results, $item.languageOptions) "#languageTemplate"}}</td>
</tr>
</script>
<script id="languageTemplate" type="text/x-jquery-tmpl">
<em>${$item.showLanguage(Name)} </em>
</script>
Они передаются в languageTemplate $ item.languageOptions для доступа к функции showLanguage.
У меня вопрос: как я могу пройти через функции, которые можно использовать в любом из шаблонов, включая шаблоны, которые включены в другие шаблоны, без необходимости помещать функции в глобальную область?
Я знаю, что могу поместить функции в их собственное пространство имен, а затем просто получить к ним доступ таким образом, но я хотел бы получить доступ к функциям из класса.
Если я исключаю свойство showLanguage в приведенном выше примере и просто передам функцию showLanguage самостоятельно, то эта функция будет доступна для первого шаблона, но любые другие шаблоны, которые обращаются к нему, не имеют к нему ссылки, и я не хочу чтобы передать его по всему месту, как они делают в своем примере, как это просто кажется мне грязным.
Надеюсь, кто-нибудь может дать мне хорошее решение.
Приветствия
Тим