我有一些具体问题。 我使用MeteorJS并安装了yogiben:admin。我试图构建一些模式,但更新后我有一个错误。 我想补充一点,我在页面中有子页面,也许这就是问题所在?
这是我在发票中添加商品后得到的结果: http://s7.postimg.org/l0q52l27v/error.png
正如我在图片中看到的,问题在于一些修饰符和" After.Update.sum"。我使用的函数是" sum"。
在我的" server / collections / 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 }});
});
比我看到问题可能是" totalAmount:sum"。我使用Chrome,所以我尝试了#34; 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 :(得分:0)
从:/ collections / 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"在未定义。