O Dopdownlist está sendo preenchido com valores limitados em vez de valores da coleção total

Eu tenho uma lista suspensa como filtros e, em seguida, há o total de postagens com um limite de exibição de apenas 4 por vez, a menos que um botão carregar mais seja clicado para mostrar outros 4 registros. O problema é que a lista suspensa também está carregando valores apenas dos primeiros 4 registros.

Aqui está a minha publicação

Meteor.publish('allJobs', function(limit){
 if(!limit){
 return Jobs.find();
}
 return Jobs.find({}, {limit: limit});
});

minha assinatura principal no controlador

  waitOn: function() {
  return Meteor.subscribe("allJobs",4,this.findOptions());
  },

ajudantes para o modelo

Template.jobsList.helpers({
'allJobs': function(){
  var filter ={};
  var category = Template.instance().selectedCategory.get();
  var city = Template.instance().selectedCity.get();
  var jtype = Template.instance().selectedJobType.get();
  if(jtype)
    filter.jtype = jtype;
  if(city)
    filter.city = city;
  if(category)
    filter.ccategory = category;
  return Jobs.find(filter);
     },
  'moreResults': function(){
    return !(Jobs.find().count() < Session.get("jobsLimit"));
  }
});

Template.jobsList.onRendered(function(){
    Session.setDefault("jobsLimit", 4);
    this.autorun(function(){
        Meteor.subscribe("allJobs", Session.get("jobsLimit"));
    });
});

Eu tentei fazer outra assinatura para isso, mas não deu certo. Por favor, ajude com uma melhor solução.

Modelo

<template name="jobsList">
  <div class="col s12 filter-holder">
        <div class="col m4 s4 filter-box">
          {{> categoryFilter}}
        </div>
        <div class="col m4 s4 filter-box">
         {{> cityFilter}}
        </div>
</div>

<div class="col s12">
  <ul class="collection" id="listings">
    {{#each allJobs}}
    <li>
      {{> jobItem}}
   </li>
   {{/each}}
  </ul>
  {{#if moreResults}}
  <button class="load-more" id="showMoreResults" type="submit">Load More
    <i class="mdi-content-send right"></i>
  </button>
  {{/if}}
</div>
</template>

Por favor, ajude, eu estou preso nesta situação

Arquivo js atualizado

var limit = new ReactiveVar;

var filterAndLimitResults = function (cursor, limit) {

if (!cursor) {
    return [];
}

var chosenCategory = limit.get("chosenCategory");

var raw = cursor.fetch();

// filter category
var filtered = [];
if (!chosenCategory || chosenCategory == "") {
    filtered = raw;
} else {
    filtered = _.filter(raw, function (item) {
        return item.category === chosenCategory;
    });
}

if (limit) {
    filtered = _.first(filtered, limit);
}
return filtered;
};

// função criada pelo modelo

Template.jobsList.onCreated(function(){
limit.set(4);
limit.set("chosenCategory");
});

// Função auxiliar de modelo

Template.jobsList.helpers({
  "displayedJobs": function() {
  return filterAndLimitResults(Jobs.find(), (limit.get()));
   },
  'moreResults': function(){
    return !(Jobs.find().count() < limit.get());
      }
    });

Filtragem de clique suspenso

Declarando na função renderizada

  Template.jobsList.onRendered(function(){
  limit.set(4);
  chosenCategory.set();
});

E o evento click é o seguinte

 "click .categoryselection": function(e, t){
        e.preventDefault();
      chosenCategory.set(chosenCategory.get());

questionAnswers(2)

yourAnswerToTheQuestion