Область видимости Template Helper в Meteor

#meteor, #web-приложения, #разработка
Область видимости Template Helper в Meteor

Meteor-приложения, как правило, создаются с использованием шаблонов (Templates). По сути они ничем не отличаются от обычных HTML за исключением наличия дополнительных тегов. В отличие от других языков, таких как PHP (или даже обычных HTML страниц, которые могут содержать JavaScript), Meteor разделяет шаблоны от логики, и эти шаблоны ничего не делают сами по себе.  Это просто представление страниц (вью). Для того, чтобы связать данные с вью используются хелперы (Helpers), которые делают data-binding во вью. Метеор хелперы - это уже JS-код, связанный с конкретным шаблоном.
В Метеор хелперы могут существовать глобально и локально.

Глобальное подключение

При глобальном подключении  хелперы можно использовать  из любого места в Вашем приложении, то есть областью их видимости становится все шаблоны программы. Рассмотрим пример подключения хелпера глобально:

Template.registerHelper( 'authors', () => {
  let authors = Authors.find();
  
  if ( authors ) {
    return authors;
  }
});

С помощью метода registerHelper() мы передаем имя нашего хелпера "authors" и код для его вызова.

Локальное подключение

При локальном подключении хелперов, они могут использоваться только тем шаблоном, с которым он напрямую связан (подключен через import). Такие хелперы используются намного чаще, чем хелперы, подключенные глобально и вот пример их подключения:

Template.books.helpers({
  authors() {
    let authors = Authors.find();
    
    if ( authors ) {
      return authors;
    } 
  }
});

В отличие от глобальных хелперов, тут нам нужно указать имя шаблона "books", для которого будет работать данный хелпер, а затем уже передается имя самого хелпера и код с его логикой.

Наследование хелперов

Также в Метеор у нас есть возможность наследовать хелперы. То есть если хелпер находится в одном JS-файле, который связан с еще одним JS-файлом, то он используется и этим файлом и всеми шаблонами, которые подключены в этот файл.

Например, есть файл шаблона example_child.html и файл example_child.js , в котором находится хелпер. Чтобы использовать этот хелпер в шаблоне, нам достаточно в файле  example_child.js  прописать  import './example_child.html';  

А если мы хотим, чтобы шаблон мог использовать еще и хелпер, находящийся в example_parent.js , то нам нужно подключить (импортировать) файл с хелпером в example_child.js, прописав: import './example_parent.js'; .  

В итоге наш шаблон использует код хелперов как из файла example_child.js , так и из './example_parent.js'. Файл example_child.js будет выглядеть вот так:

import './example_child.html';
import './example_parent.js';

 

Таким образом, мы выяснили, что хелперы являются важнейшей частью Meteor-приложений, которые обеспечивают хранение логики шаблонов и управляют ими. 


Поделиться в соцсетях:

Статьи по теме