大家好,这是我在流星js的第一个项目。 我在这个包中使用Meteor 1.4.1.1:
aldeed:collection2 2.10.0
我的收藏中有这个字段
Clienti.ClienteSchema = new SimpleSchema({
cantieri: {
type: [Clienti.Cantieri],
optional: true,
autoform: {
type: "hidden"
}
}
});
Clienti.Cantieri = new SimpleSchema({
giorni: {
type: [Clienti.Giorni],
optional: true,
autoform: {
type: "hidden"
}
}
});
Clienti.Giorni = new SimpleSchema({
giorno: {
type: Date,
label: "giorno del lavoro"
},
oraPartenza: {
type: Date,
label: 'Giorno e ora partenza',
},
oraInizio: {
type: Date,
label: 'Giorno e ora inizio',
optional: true
},
oraFine: {
type: Date,
label: 'Giorno e ora fine',
optional: true
},
dipendenti: {
type: [Dipendenti]
}
});
这是输入的选择
<div class="col-xs-12">
<div class="form-group">
<label class="checkbox" for=dipendenti>dipendenti</label>
<select multiple name="dipendenti">
{{#each Dipendenti}}
<option value="{{_id}}">{{nome}} {{cognome}}</option>
{{/each}}
</select>
</div>
</div>
使用此表单我想在现有的Cliente.cantiere中提交最后一个字段Giorni。
我试过了:
Template.nuovoGiorno.events({
'submit #Giorno'(event) {
event.preventDefault();
const id = FlowRouter.getParam('id');
const target = event.target;
const giorno = target.giorno.value;
const oraPartenza = target.oraPartenza.value;
let select = target.dipendenti.options;
let selezionati=[];
for (var i = 0; i < select.length; i++) {
var option = select[i];
if (option.selected){
console.log(id);
console.log('opzione ' + option.value);
Clienti.update({_id:id}, {$set:{
'cantieri.giorni.giorno': giorno,
'cantieri.giorni.oraPartenza': oraPartenza,
'cantieri.giorni.dipendenti._id': option.value
}});
}
}
}
});
但不起作用。我该如何解决?
答案 0 :(得分:0)
看起来你的cantieri
键是一个对象数组,它们本身就是对象数组。这真的是你想要的吗?
我会尝试:
Clienti.update({ _id: id }, { $set: {
cantieri: [{
giorni: [{
giorno: giorno,
oraPartenza: oraPartenza,
dipendenti._id: option.value
}]
}]
}});
如果您想将giorni
推送到特定cantieri
(根据您的评论),请在查询中选择您想要的cantieri
,然后推送新giorni
进入它:
Clienti.update({ _id: id, cantieri: myCantieri }, { $push: { 'cantieri.giorni': newGiorni }});