Как у meteorjs есть имена строк в качестве функций? - PullRequest
0 голосов
/ 25 июня 2018

Проверьте следующий фрагмент кода

Template.body.events({
  'submit .new-task'(event) {
    // Prevent default browser form submit
    event.preventDefault();

    // Get value from form element
    const target = event.target;
    const text = target.text.value;

    // Insert a task into the collection
    Tasks.insert({
      text,
      createdAt: new Date(), // current time
    });

    // Clear form
    target.text.value = '';
  },
});

Этот фрагмент кода был взят из учебника по MeteorJS.

Уведомление 'submit .new-task'(event). Как это возможно? Как бы я поступил так же без метеора?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Это сокращение для:

Template.body.events({
  'submit .new-task': function (event) {
    // ...
  }
});

Метеор не имеет к этому никакого отношения.

Ссылка: http://es6 -features.org / # MethodProperties

0 голосов
/ 25 июня 2018

События - это объект EventHandlers, которые анализируются по следующей логике:

'submit .new-task' интерпретируется как onSubmit для селектора .new-task, и объявленная функция для этой строки является функцией, которая должна быть выполнена.

Эквивалент jQuery будет:

$( ".new-task" ).on( "submit", (event) {
    // Prevent default browser form submit
    event.preventDefault();

    // Get value from form element
    const target = event.target;
    const text = target.text.value;

    // Insert a task into the collection
    Tasks.insert({
      text,
      createdAt: new Date(), // current time
    });

    // Clear form
    target.text.value = '';
  },
});

Некоторое основное отличие состоит в том, что в событиях шаблона Blaze текущий экземпляр шаблона передается как второй параметр (не включенный в ваш пример), который позволяет вам получать / устанавливать переменные шаблона, используя ReactiveVar или RactiveDict.

Написание пользовательских событий с использованием jQuery упустит все функции, которые Blaze предоставляет вам с картами событий.

Подробнее о картах событий здесь: http://blazejs.org/api/templates.html#Event-Maps

Подробнее о событиях jQuery можно прочитать здесь: https://api.jquery.com/on/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...