2015-08-31 1 views
0

У меня есть simpleSchema:

imageUrl: { 
    type: Object, 
    optional: true, 
    autoValue: function() { 
     if (Meteor.isClient) return; 
     var imageField = this.field('imageId'); 
     if (!imageField.isSet){ 
     this.unset(); 
     } else { 
     var imageObj = MealsImages.findOne(imageField.value); 
     if (imageObj){ 
      return {thumb: imageObj.S3Url('thumb'), big: imageObj.S3Url('big')}; 
     } 
     } 
    }, 
    autoform: { 
     label: false, 
     type: 'hidden', 
     afFieldInput: { 
     type: "hidden" 
     } 
    } 
    }, 

По какой-то причине, когда я обновляю записи в этом поле всегда отображается в $ отключенного массив:

Meteor.methods({ 
    mealUpsert: function(doc, mealId) { 
    check(doc, Meals.simpleSchema()); 

    console.log('test7'); 
    console.log(doc); 

    if (mealId){ 
     Meals.update({_id: mealId}, doc); 
    } else { 
     mealId = Meals.insert(doc); 
    } 
    return false; 
    } 
}); 

напечатает:

I20150830-21:49:39.560(-4)? { '$set': 
... 
I20150830-21:49:39.562(-4)? '$unset': 
I20150830-21:49:39.562(-4)? { imageUrl: '', 
... 

Я использую AutoForm:

<template name="mealUpdateForm"> 
    <div class="meal-content"> 
    {{> quickForm collection="Meals" doc=this id="mealUpdateForm" meteormethod="mealUpsert" type="method-update"}} 
    </div> 
</template> 

И никогда не будет обновляться или устанавливаться. Любая подсказка, почему поле могло появиться в списке $unset?

+0

Вам необходимо показать код, который создает документ, который передается вашему методу. –

+0

Я использую autoform, код автоматически создается им. Так что это может быть и проблема автоформы. Будет обновлено описание. – Kostanos

ответ

0

Я думаю, что я понял это - у вас есть this.unset() в вашем autoValue для imageUrl. Это вызывается всякий раз, когда вы опускаете imageId из модификатора, даже если он уже присутствует в документе, который вы изменяете!

+0

'' 'this.unset()' '' Я запускаю только, если передано условие '' '! ImageField.isSet'''. Это не случай. Я уже отлаживал это. Любая другая подсказка? – Kostanos

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