Я прочитал [Template.instance().view] 1 в документации Blaze.
Я даже видел объект просмотра в журнале консоли.
Но я не могу понять.
Может ли кто-нибудь объяснить это более интуитивно и плавно, пожалуйста? :)
Нет общего понимания объекта с именем «вид». Поэтому я не вижу, где это нужно и где это можно использовать.
Пожалуйста, прочтите статьи еще раз, они очень ясно дают понять, что такое компонент Blaze.view.
Очень редко вам нужно напрямую взаимодействовать с API представления, поэтому нет ничего плохого в том, чтобы не понимать. На самом деле, я полагаю, что большинство разработчиков Meteor этого не делают!





Если вы хотите понять представления более глубоко, вам необходимо понять взаимосвязь между шаблонами, экземплярами шаблонов и представлениями. Представления - это просто реактивные части DOM. Экземпляры шаблонов содержат одно представление, но шаблоны могут создавать больше представлений с помощью функций, которые создают отображаемый контент, например Blaze.with ({{#with}}) или Blaze.if ({{#if}}). Эти «дочерние» представления будут затем хранить родительский указатель, который вы можете использовать для восстановления дерева представлений.
Что может помочь вам понять, это игра с тем, как шаблоны и представления взаимодействуют в инструментах Chrome. Вы можете найти экземпляр шаблона, используя любой элемент DOM. Вот пример для начала:
templateInstance = Blaze.findTemplate($('<some component in dom>')[0])
view = templateInstance.view
Вы можете расширить Blaze, чтобы он содержал findTemplate следующим образом:
Blaze.findTemplate = function(elementOrView) {
if (elementOrView == undefined) {
return;
}
let view = Object.getPrototypeOf(elementOrView) === Blaze.View.prototype
? elementOrView
: Blaze.getView(elementOrView);
while (view && view.templateInstance === undefined) {
view = view.originalParentView || view.parentView;
}
if (!view) {
return;
}
return Tracker.nonreactive(() => view.templateInstance());
};
Была ли в документации какая-то часть, которая для вас не имела смысла?