Метеор Как вызвать помощника шаблона в другой помощник шаблона? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть шаблон поиска, где поиск работает нормально.Теперь мне нужно вызвать такое же событие поиска в моем файле navbar.js.Можно ли вызвать помощник другого шаблона в моем помощнике шаблонов navbar.

templates \ pages \ search \ search.js помощник

Template.Search.events({

  "keyup #searchFormInput": _.throttle((e, tmpl) => {
    let text = $(e.target).val().trim();
    console.log(text);
    if (text.length)
      ArgSearch.search(text);
  }, 200)

});

Template.Search.helpers({
  'getResults' () {
    return ArgSearch.getData({});
  }
});

templates \ shared \ nav \ navbar.js

пытается назвать это как

Template.Topnavright.events({

    Template.Topnavright.__helpers.get('Search')();

}); 

1 Ответ

0 голосов
/ 05 декабря 2018

Возможным решением является создание общего контекста, который обновляется и используется обоими шаблонами:

import /where / context.js

export const Shared = {
  ArgSearch: ArgSearch,
}

templates \ pages \ search \ search.js

import {Shared} from 'imports/somewhere/context.js'

Template.Search.events({

  "keyup #searchFormInput": _.throttle((e, tmpl) => {
    let text = $(e.target).val().trim();
    console.log(text);
    if (text.length)
      Shared.ArgSearch.search(text);
  }, 200)

});

Template.Search.helpers({
  'getResults' () {
    return Shared.ArgSearch.getData({});
  }
});

templates \ shared \ nav \ navbar.js

import {Shared} from 'imports/somewhere/context.js'

Template.Topnavright.events({
  someHelpers () {
    return Shared.ArgSearch.getData({});
  }
}); 

Примечание,что вы также можете делиться экземплярами ReactiveVar или ReactiveDict с общим контекстом, который действует немного как Session, но в ограниченной области.

...