Когда я объявляю подписку автозапуска в функции Template.onCreated, автозапуск был запущен дважды, поэтому публикация запускается дважды.Метеор: почему автозапуск выполняется дважды в onCreated
Route.route 'moneyDepositRequest',
onRun: ->
console.log 'onRun'
Session.set 'condition', where: name: 'example'
Template.moneyDepositRequest.onCreated ->
console.log 'onCreated'
@autorun ->
console.log 'autorun'
@subscribe 'data', Session.get('condition')
if Meteor.isServer
Meteor.publish 'data', (condition) ->
console.log 'data publication'
Data.find()
Этот код показывает эту последовательность журналов.
'публикация данных'
'OnRun'
'onCreated'
'автозапуск'
'публикация данных'
Я не понимаю, почему 'публикация данных' обжигают заранее before onCreated выполнен.
Если я объявил это действие автозапуска в функции onRenderd, проблема будет решена.
Как я мог понять это?
Спасибо за ясный ответ. – jwjin
Кроме того !! Если CoffeeScript не входят ES6, означает ли это, что мы больше не можем использовать CoffeeScript на ES6? Я думаю, что если компилятор CoffeeScript обновлен или использует какой-либо pollyfill для его использования, мы можем использовать его правильно? ? ВПЕРВЫЕ, я люблю кофе. – jwjin
Продолжайте использовать CoffeeScript. :) Просто знайте, что может быть пара нишевых вещей, которые вы не сможете сделать, что вы можете сделать в ES6. Что касается '!! Session', использование' !! 'просто в основном превращает истинный элемент в правильное логическое' true'. Вы также можете просто выполнить 'if Session.get ('condition') 'там, это тоже должно работать нормально. – ffxsam