如何使用Javascript访问Meteor客户端的模型数据?

时间:2014-09-16 23:38:49

标签: javascript model meteor client-side

我错过了一些必须如此明显的关键Meteor语法,我无法追踪它。

我有一个名为MongoDB数据的模型,如下所示:

Locations.insert({
    title: "Eridanus",
    body: "Eridanus is a constellation. It is represented as a river; its name is the Ancient Greek name for the Po River.",
    latitude: "32.715",
    longitude: "-117.1625"
});

我发布了这个模型:

Meteor.publish('allLocations', function() {
  return Locations.find();
});

我甚至可以在模板中调用它。我的模板名为client/views/locations.html

<template name="locations">
  {{#each locations}}
    <div class="location"><h3>{{title}}</h3></div>
  {{/each}}
</template>

但是,我还需要能够在此页面的随附javascript中访问此位置模型,我称之为client/views/locations.js到目前为止,我有类似的内容,但我感到茫然如何在我的模型中将lat长信息转换为javascript中的对象。

Template.locations.rendered = function () {
  //Psuedo code
  for each location in locations {
    console.log('Logitude', location.longitude)
  }
}

引用我所知道的位置模型的正确方法是什么?我已阅读文档并进行了一些搜索,但无法找到答案。任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:1)

订阅一组文档后,它们将驻留在您的本地minimongo数据库中。您可以使用光标访问它们(例如,使用find)。在您的示例中:

Template.locations.rendered = function() {
  Locations.find().map(function(location) {
    console.log('Logitude', location.longitude);
  });
};

Template.locations.rendered = function() {
  var locations = Locations.find().fetch();
  _.each(locations, function(location) {
    console.log('Logitude', location.longitude);
  });
};