为什么在客户端以外的任何其他位置创建模型,流星运行时抛出异常



我是流星新手。我正在尝试构建一个简单的应用程序,它只显示项目列表。我第一次尝试在我的客户端javascript代码中使用硬编码的模型值,它运行得很好。然后,我在应用程序的根目录下创建了一个名为"模型"的文件夹,并在那里创建了如下所示的模型

收藏夹=新Meteor.collection("收藏夹")

有了这个更改,流星在加载时抛出指向文件这一行的异常。如果我把这个代码移到客户端,代码就会正常工作,这当然是错误的。完整代码为@https://github.com/ksunair/13favs这是一个非常简单的解决方案,文件很少,总共不到20或30行。我的客户代码是

模板.favorites_main.helper({收藏夹:收藏夹});

为了清除应用程序中的错误,我做了以下操作:

  1. Favorites = new Meteor.Collection("favorites");(集合以大写C开头)

  2. 我将model/mainmodel.js移到了lib/mainmodel.js,因此一旦模板呈现,Favorites就会可用。我总是把我的模型放在lib下(或子目录中),这样它们就会先加载。这与我在其他地方看到的情况相矛盾,包括发现流星,所以我不清楚最好的做法是什么。无论如何,它解决了问题。

  3. 需要$ meteor add accounts-ui,因为您引用了Accounts.ui.config

  4. 您需要在favorites_main模板中实际执行find。所以它应该看起来像:

Template.favorites_main.helpers({
  favorites: Favorites.find();
});

最新更新