2015-07-28 250 views
0

我有一些特定的問題。 我使用MeteorJS並安裝了yogiben:admin。我試圖構建一些模式,但在更新內容後出現錯誤。 我想補充一點,我有頁面中的子頁面,也許這就是問題所在?訂閱集合(流星)

這就是我將項目添加到我的發票後得到: http://s7.postimg.org/l0q52l27v/error.png

,我可以在圖片中看到,問題是一些修飾,並以「After.Update.sum」。我使用使用「sum」的函數。

在我的 「服務器/收藏/ invoices_item.js」 我:

InvoicesItem.after.update(function(userId, doc, fieldNames, modifier, options) { 
var sum = 0; InvoicesItem.find({ invoiceId: doc.invoiceId }).map(function(item) { sum += item.amount; }); Invoices.update({ _id: doc.invoiceId }, { $set: { totalAmount: sum }}); 
}); 

比我看到的問題可能與 「總金額:總和」。我使用Chrome,所以我嘗試了「console.log()」來查看頁面是否需要我的收藏。 而事實並非如此。

我使用Chrome,所以我試着看看控制檯會給我什麼。我有這樣的事情:http://s4.postimg.org/rusm4wx9p/fakturka.png

我做了某事一樣,在我的服務器端代碼:

Meteor.publish("fakturka", function(invoiceId) { 
    return Invoices.find({_id:invoiceId,ownerId:this.userId}, {}); 
}); 

而且做到了在客戶端:

this.InvoicesNewInsertController = RouteController.extend({ 
template: "InvoicesNew",    
    yieldTemplates: { 
     'InvoicesNewInsert': { to: 'InvoicesNewSubcontent'}   
    },  
    onBeforeAction: function() { 
     /*BEFORE_FUNCTION*/ 
     this.next(); 
    },  
    action: function() { 
     if(this.isReady()) { this.render(); } else { this.render("InvoicesNew"); this.render("loading", { to: "InvoicesNewSubcontent" });} 
     /*ACTION_FUNCTION*/ 
    },  
    isReady: function() {    
     var subs = [ 
      Meteor.subscribe("invoices_item"), 
      Meteor.subscribe("invoiceeeee"), 
      Meteor.subscribe("customers"), 
      Meteor.subscribe("fakturka", this.params.invoiceId), 
      Meteor.subscribe("invoices_item_empty_faktura"), 
      Meteor.subscribe("invoices_itemss_faktura", this.params.invoiceId) 
     ]; 
     var ready = true; 
     _.each(subs, function(sub) { 
      if(!sub.ready()) 
       ready = false; 
     }); 
     return ready; 
    },  
    data: function() {    
     return { 
      params: this.params || {}, 
      invoices_item: InvoicesItem.find({}, {}), 
      invoiceeeee: Invoices.find({}, {}), 
      customers: Customers.find({}, {}), 
      fakturka: Invoices.findOne({_id:this.params.invoiceId}, {}), 
      invoices_item_empty_faktura: InvoicesItem.findOne({_id:null}, {}), 
      invoices_itemss_faktura: InvoicesItem.find({invoiceId:this.params.invoiceId}, {}) 
     }; 
     /*DATA_FUNCTION*/ 
    },  
    onAfterAction: function() { 
    } 
}); 

對不起這麼很多代碼,但我真的想解決這個問題,我想盡可能地提供這麼多的信息。請幫我解決我的問題。

回答

0

從移除代碼後:兩者/收藏/ invoices.js

Schemas={}; 
Schemas.Invoicess = new SimpleSchema({ 
    invoiceNumber:{ 
     type:Number 
    }, 
    date_issued:{ 
     type:Date 
    }, 
    date_due:{ 
     type:Date 
    }, 
    customerId:{ 
     type:String 
    }, 
    totalAmount:{ 
     type:String 
    } 
}); 
Invoices.attachSchema(Schemas.Invoicess); 

「fakturka」 是可見的。在添加代碼後 - 「fakturka」處於未定義狀態。