2016-05-10 3 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

でなければなりません

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

あなたは私たちにあなたがそう持っているものをいくつかのコードを表示することができます遠くに行った。 – JamiDer

答えて

0

あなたがautopublishパッケージを削除した場合、文書は、あなたがクライアントに送信される文書のためのパブリケーションとサブスクリプションを作成する必要があります。

サーバーでは、次のように書いています。Meteor.publish('items', function() { return Items.find(); }。 クライアントではMeteor.subscribe('items');を購読します。

0

あなたは明確にのみ、著者のタスクを公開:あなたは、それは誰にでも見えるようにしたい場合は、それが

Meteor.publish('tasks', function(){ 
    return Tasks.find(); 
}); 
関連する問題