2015-06-11 2 views
0

Я удалил autopublish и теперь имеет простые publish и subscribe для стартеров.Вложенные элементы недоступны без автообновления в Meteor

Meteor.publish("records", function() { 
    return Records.find({}); 
}); 

и

Meteor.subscribe('records'); 

В монголо я могу видеть мои вложенные элементы данных, что является объектом GeoJSON. Однако, когда я пытаюсь получить доступ к элементу с здесь не работает, если autopublish не на ...

Template.recordView.rendered = function() { 
    var geoData = Template.currentData().loc; 
}; 

Я пробовал только «LOC» и parentData(). Loc. Ни один из них не определен. Что удалил аутопубликацию, которую я не вернул?

+0

Это может быть проблема с подпиской на данные. Я думаю, что вы получили ответ ниже. – Greenhorn

+0

Я попробую ответить. Он имеет данные в мини-монго, и я могу получить данные верхнего уровня, хотя это кажется странным. – latitudehopper

+0

Если у вас есть данные на внутренних уровнях или вложенные, вам может потребоваться написать полный запрос, а не просто 'Records.find()'. Вы можете получить это с несколькими испытаниями легко. – Greenhorn

ответ

0

Где вы подписались на свои данные? Я рекомендую вам делегировать это для вашего шаблона.

Template.recordView.onCreated(function() { 
    var self = this; 
    self.autorun(function() { 
     // Do reactive stuff here 
     Meteor.subscribe("records"); 
    }); 
}); 

Template.recordView.helpers({ 
    // Data is now available here 
    'geoData': function() { 
     return Records.find().loc; 
    } 
}); 

Теперь у вас есть доступ к вашему шаблону данных. Делай все, что хочешь, и вернешь помощника. В вашем .html:

<template name="recordView"> 
... 
{{#if Template.subscriptionsReady}} 
    {{geoData}} 
{{else}} 
    Loading... 
{{/if}} 
... 
</template> 

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

Смежные вопросы