#jquery #templates #function #plugins #scope
#jquery #шаблоны #функция #Плагины #область действия
Вопрос:
Я использую плагин шаблона jQuery и вызываю плагин из класса.
В примере, озаглавленном Example: Использование параметра 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 $.languageOptions для доступа к функции showLanguage.
Мой вопрос в том, как я могу пройти через функции, которые могут использоваться в любом из шаблонов, включая шаблоны, которые включаются другими шаблонами, без необходимости размещать функции в глобальной области?
Я знаю, что могу поместить функции в их собственное пространство имен, а затем просто получить к ним доступ таким образом, но я хотел бы получить доступ к функциям изнутри класса.
Если я исключу свойство showLanguage в приведенном выше примере и просто передам функцию showLanguage самостоятельно, тогда функция доступна для первого шаблона, но любые другие шаблоны, которые обращаются к нему, не имеют ссылки на него, и я не хочу передавать ее по всему месту, как они делают в своем примере, поскольку это просто кажется мне беспорядочным.
Надеюсь, кто-нибудь сможет подсказать мне хорошее решение.
Приветствия,
Тим