2016-05-03 3 views
-1

У меня есть этот фрагмент кодаПерестройка обновление метеор сниппет

  Requestor.update({ _id: theid }, {$set: { 
      "reqestmadebyid": doc.reqestmadebyid, 
      "requestschoolid": doc.requestschoolid, 
      "requestmadebynames": doc.requestmadebynames, 
      "requestmadeon": doc.requestmadeon, 
      "requesttype": doc.requesttype, 
      "requestdescription": doc.requestdescription, 
      "requestparameter1": doc.requestparameter1, 
      "requestparameter2" : doc.requestparameter2, 
      "requestparameter3" : doc.requestparameter3, 
      "requestparameter4" : doc.requestparameter4, 
      "requestparameter5" : doc.requestparameter5, 
      "requestparameter6" : doc.requestparameter6, 
      "requestparameter7" : doc.requestparameter7, 
      "requeststatus" : doc.requeststatus, 
      "requestdenialexplanation" : doc.requestdenialexplanation 
      } 
      }); 

, который я использую, чтобы обновить форму. Есть ли способ, которым я могу уменьшить его размер, как во время вставки ?.

ответ

2

Нельзя сказать, что это меньше, но его легче поддерживать.

var fields = [ 
'reqestmadebyid', 
'requestschoolid', 
'requestmadebynames', 
'requestmadeon', 
'requesttype', 
'requestdescription', 
'requestparameter1', 
'requestparameter2', 
'requestparameter3', 
'requestparameter4', 
'requestparameter5', 
'requestparameter6', 
'requestparameter7', 
'requeststatus', 
'requestdenialexplanation' 
]; 

var updateSet = fields.reduce(function(data, field) { 
    return data[field] = doc[field]; 
}, {}); 

Requestor.update({ _id: theid }, {$set: updateSet}); 

Более компактный пример использования lodash НПМ пакет:

var fields = [ 
'reqestmadebyid', 
'requestschoolid', 
'requestmadebynames', 
'requestmadeon', 
'requesttype', 
'requestdescription', 
'requestparameter1', 
'requestparameter2', 
'requestparameter3', 
'requestparameter4', 
'requestparameter5', 
'requestparameter6', 
'requestparameter7', 
'requeststatus', 
'requestdenialexplanation' 
]; 

Requestor.update({ _id: theid }, {$set: _.pick(doc, fields)}); 
+0

Вот некоторые умные code.I я молча надеясь метеор есть способ сокращения этого. –

+0

Что-то, чтобы заставить вас улыбнуться, все приветствуют этого капитана, очевидно, https://github.com/udondan/meteor-bulk-collection-update –

+0

Я почесываю голову, как это работает http://autoform.meteorapp.com/updateaf –

Смежные вопросы