Я пытаюсь вывести новые данные в мой массив clients
каждый раз, когда вызывается метод loadMoreClients
. Публикация ожидает этот параметр back_to
и знает, как с ним справиться. Моя проблема в том, что я не могу назвать эти методы из моих помощников Шаблонов.метод вызова в Iron-Router RouteController из Template.tmpl.helpers() не работает
Я записал Iron
и Iron.controller
на консоль, и оба они существуют и показывают мне то, что я ожидал увидеть. Я просто не могу найти текущие документы или примеры того, как получить доступ к Iron.controller()
методы/свойства из моих шаблонов хелперов
Вот мой RouteController код:
ClientController = ApplicationController.extend({
action : function(){
this.render(Router.current().route.getName())
},
data : function(){
if(this.params._id){
return Clients.findOne({ _id:this.params._id })
}
},
waitOn : function(){
return [
Meteor.subscribe('directory'),
Meteor.subscribe('clients')
]
},
loadMoreClients : function(){
this.months_back += 3
this.back_to = moment().subtract(this.months_back,'months').startOf('day')
this.clients.push(Meteor.subscribe('clients', {back_to:this.back_to, skip:this.clients.length}))
},
loadAllClients : function(){
this.clients.push(Meteor.subscribe('clients', {back_to:this.start_of_time, skip:this.clients.length}))
},
// we'll use these properties to 'load more' client data
clients : [],
back_to : moment().subtract(3,'months').startOf('day'),
months_back : 3,
start_of_time : moment(new Date(0))
})
Вот мой хелперы код:
Template.client_list.helpers({
clients : function(){
var clients = []
Iron.controller().clients.forEach(function(client){
// ... some stuff here...
clients.push(client)
})
return clients
},
earliestClientLoaded : function(){
var controller = Iron.controller()
return controller.clients[controller.clients.length - 1].createdAt
}
})
Template.client_list.events({
'click .btn-load-more' : function(e){
e.preventDefault()
Iron.controller().loadMoreClients()
},
'click .btn-load-all' : function(e){
e.preventDefault()
Iron.controller().loadAllClients()
}
})
Я получаю undefined function
ошибки на моих Iron.controller()
звонки на loadMoreClients
и loadAllClients
методы.
Что я здесь делаю неправильно?