모두 좋아 A1 나는 시험 받고 잘 작동했다.
clientMiniSudoku.js
var arrangeOptions = function(inA1,cbA1,inA2,cbA2,inA3,cbA3,inA4,cbA4,inA5,cbA5,inA6,cbA6,inA7,cbA7,inA8,cbA8,inA9,cbA9) {
var inA1 = $("#inA1").val(),inA2 = $("#inA2").val(),inA3 = $("#inA3").val(),inA4 = $("#inA4").val(),inA5 = $("#inA5").val(),inA6 = $("#inA6").val(),inA7 = $("#inA7").val(),inA8 = $("#inA8").val(),inA9 = $("#inA9").val();
var cbA1 = $("#cbA1:checked").val(), cbA2 = $("#cbA2:checked").val(), cbA3 = $("#cbA3:checked").val(), cbA4 = $("#cbA4:checked").val(), cbA5 = $("#cbA5:checked").val(), cbA6 = $("#cbA6:checked").val(), cbA7 = $("#cbA7:checked").val(), cbA8 = $("#cbA8:checked").val(), cbA9 = $("#cbA9:checked").val();
if(!_.isEmpty(inA1) && !_.isEmpty(inA2) && !_.isEmpty(inA3) && !_.isEmpty(inA4) && !_.isEmpty(inA5) && !_.isEmpty(inA6) && !_.isEmpty(inA7) && !_.isEmpty(inA8) && !_.isEmpty(inA9)){
var resultObject = {a1:{value: inA1, checkbox: cbA1},
a2:{value: inA2, checkbox: cbA2},
a3:{value: inA3, checkbox: cbA3},
a4:{value: inA4, checkbox: cbA4},
a5:{value: inA5, checkbox: cbA5},
a6:{value: inA6, checkbox: cbA6},
a7:{value: inA7, checkbox: cbA7},
a8:{value: inA8, checkbox: cbA8},
a9:{value: inA9, checkbox: cbA9}
};
return resultObject;
}else {
return "Please input numbers in any field.";
}
}
Template.miniSudoku.helpers({
showData: function(){
},
errorInput: function(){
return Session.get("Error");
}
});
Template.miniSudoku.events({
'click #inputData': function(event){
event.preventDefault();
Session.set("options", arrangeOptions());
var options = Session.get("options");
if(Meteor.userId() && !_.isEmpty(options)){
if(_.isObject(options)){
Meteor.call('inputDatabase',options, function(){
Session.set("Error", "Data was inserted.");
$("#inA1").val("");
$("#cbA1").prop('checked', false);
$("#inA2").val("");
$("#cbA2").prop('checked', false);
$("#inA3").val("");
$("#cbA3").prop('checked', false);
$("#inA4").val("");
$("#cbA4").prop('checked', false);
$("#inA5").val("");
$("#cbA5").prop('checked', false);
$("#inA6").val("");
$("#cbA6").prop('checked', false);
$("#inA7").val("");
$("#cbA7").prop('checked', false);
$("#inA8").val("");
$("#cbA8").prop('checked', false);
$("#inA9").val("");
$("#cbA9").prop('checked', false);
});
}else{
Session.set("Error", "Data error.");
console.log(options);
}
}else{
Session.set("Error", "Please login before input.")
}
}
});
model.js
MiniSudoku = 새로운 Meteor.Collection ("MiniSudoku");
Meteor.methods ({
inputDatabase : function(options){
MiniSudoku.insert({
a1: {value: options.a1.value, checkbox: options.a1.checkbox},
a2: {value: options.a2.value, checkbox: options.a2.checkbox},
a3: {value: options.a3.value, checkbox: options.a3.checkbox},
a4: {value: options.a4.value, checkbox: options.a4.checkbox},
a5: {value: options.a5.value, checkbox: options.a5.checkbox},
a6: {value: options.a6.value, checkbox: options.a6.checkbox},
a7: {value: options.a7.value, checkbox: options.a7.checkbox},
a8: {value: options.a8.value, checkbox: options.a8.checkbox},
a9: {value: options.a9.value, checkbox: options.a9.checkbox}
});
}
});
기본적으로 json을 이해하면 js와 mongodb를 이해할 수 있습니다. 흠, 나는 아직도 당신이 정말로 원하는 것을 얻지 못합니까? 귀하의 코드가 맞기 때문에 – yozawiratama
정확히 어떤 문제가 있습니까? 기본적으로 이것이 작동해야하기 때문에. 이미'check'로이 객체의 유효성을 검증했기 때문에'Collection.insert (options)'와 같은 질의를 작성할 수도 있습니다. – macrusher
나는 플랫 데이터로 놀았었다. 이 방법에는 아무런 문제가 없습니다. 그러나 이것은 내가 테스트 한 아래의 중첩 된 데이터로 재생할 수있는 첫 번째 시간이며 작동하지 않는 것 같습니다. – user3773249