2016-05-10 39 views
0

起初我是流星的初學者。我正在爲學校創建一個應用程序。用戶可以添加一些東西到一個集合。我的問題是,目前只有作者看到了這個任務。我該如何解決它?如何向其他用戶顯示收藏內容?

編輯:我的js代碼



    if (Meteor.isClient) 
    { 
    Template.Collection.onCreated(function() { 
     var self = this; 
     self.autorun(function() { 
      self.subscribe('tasks'); 
     }); 
    }); 

    Template.Collection.helpers({ 
     tasks:()=> { 
      return tasks.find({inCollection: true}); 
     } 
    }); 

    Template.Tasks.onCreated(function() { 
     var self = this; 
     self.autorun(function() { 
      self.subscribe('tasks'); 
     }); 
    }); 

    Template.tasks.helpers({ 
     tasks:()=> { 
      return tasks.find({});  
     } 
    }); 

    Template.Tasks.events({ 
     'click .new-task':() => { 
      Session.set('newTask', true); 
     } 
    }); 

    Template.TaskSingle.onCreated(function() { 
     var self = this; 
     self.autorun(function() { 
      var id = FlowRouter.getParam('id'); 
      self.subscribe('singleTask', id); 
     }); 
    }); 

    Template.TaskSingle.helpers({ 
     task:()=> { 
      var id = FlowRouter.getParam('id'); 
      return Tasks.findOne({_id: id}); 
     } 
    }); 

    Template.NewTask.events({ 
     'click .fa-close' : function() { 
      Session.set('newTask', false); 
     } 
    }); 

    Template.Task.onCreated(function(){ 
     this.editMode = new ReactiveVar(false); 
     // this.editMode = new ReactiveVar(); 
     //this.editMode.set(false); 
    }); 

    Template.Task.helpers({ 
     updateTaskId: function() { 
      return this._id; 
     }, 
     editMode: function() { 
      return Template.instance().editMode.get(); 
     } 
    }); 

    Template.Task.events({ 
     'click .toggle-menu': function() { 
      Meteor.call('toggleMenuItem', this._id, this.inCollection); 
     }, 
     'click .fa-trash' : function() { 
      Meteor.call('deleteTask', this._id); 
     }, 
     'click .fa-pencil' : function(event, template) { 
      template.editMode.set(!template.editMode.get()); 
     } 
    }); 


    } 



    if (Meteor.isServer) { 
     Meteor.startup(function() { 
      //code to run on server at startup  
    }); 


    Meteor.publish('tasks', function(){ 
     return tasks.find({author: this.userId}); 
    }); 


    Meteor.publish('singleTask', function(id){ 
     check(id, String); 
     return Tasks.find({_id: id}); 
    }); 

    // Configure Accounts to require username instead of email 
    Accounts.ui.config({ 
     passwordSignupFields: "USERNAME_ONLY" 
    }); 

    } 

+1

你能告訴我們一些代碼,你有這麼做得很遠。 – JamiDer

回答

0

如果您已經刪除了autopublish包,那麼文件,那麼你需要創建發佈和訂閱的文檔發送給客戶。

在你寫的服務器上:Meteor.publish('items', function() { return Items.find(); }。 而在客戶端,您可以訂閱Meteor.subscribe('items');

0

您明確發佈的只是筆者的任務:

Meteor.publish('tasks', function(){ 
    return Tasks.find({author: this.userId}); 
}); 

如果你希望它是所有人可見的,它應該是

Meteor.publish('tasks', function(){ 
    return Tasks.find(); 
});