无法使用Meteor-Blaze访问Mongo数据库

时间:2016-11-03 18:33:48

标签: javascript html mongodb meteor meteor-blaze

在文件中使用此代码" reports.js"在" reports.html"的同一文件夹中,我在返回的数组中得到0个元素。不确定我是否遗漏了任何额外的声明,但我也无法使用"从meteor / mongo'中导入{Mongo};"没有错误"使用保留字' import'"。 流星版本1.2.1

JS

Tasks = new Mongo.Collection('tasks');

if(Meteor.isClient){
    Template.reports.rendered = function(){
        if(Session.get("animateChild")){

            $(".reports-page").addClass("ng-enter");

            setTimeout(function(){
                $(".reports-page").addClass("ng-enter-active");
            }, 300);

            setTimeout(function(){
                $(".reports-page").removeClass("ng-enter");
                $(".reports-page").removeClass("ng-enter-active");
            }, 600);
        }
    };
}

Template.dashboardd.helpers({
  options() {
    return Tasks.find({});
  },
});

HTML

<Template name="dashboardd">
  {{#each options}}
    <p><label>{{text}}</label></p>
  {{/each}}
</Template>

1 个答案:

答案 0 :(得分:0)

AFAIK流星1.2不支持进口。瑕疵是新模块添加我流星1.3或1.4我不确定。 在处理集合时我总是使用这3个元素(如果我们采用集合声明,则使用4个元素)

你应该在服务器端做一些发布,并允许像:

Meteor.publish("Tasks ", function (selector, options) {
//you can remove condition if you dont have accounts-package
   if (this.userId) {
    return Tasks .find(selector || {}, options || {});
   }
});

还有一些允许     再一次,如果你没有Meteor-accounts,你可以简单地 - 返回true,插入,更新等。但我不能说这不安全:P

Tasks.allow({
 insert: function (userId, doc) {
return userId;
},

 update: function (userId, doc) {
    return userId;
 },

 remove: function (userId) {
  return userId;
 },
});

在客户端,有些订阅

Template.YourTemplateName.onCreated(function () {
 this.autorun(() => {

    this.subscribe('Tasks', { _id: Template.currentData()._id });
 //or
   this.subscribe('Tasks');
 //but this solution can kill Browser when you collection will have a thousand elements. Allways try to not subscribe all collection. Only Needed fields/objects
  });
});