2015-01-28 22 views
6

S3 etkileşimim için Autoform ve Slingshot kullanıyorum. Kullanıcı formu gönderdiğinde, işlemi durdurmak, dosyayı S3'ten Slingshot'a yüklemek, nesnesini döndürülen downloadUrl ile genişletmek ve sonra bu noktada, yeni güncelleştirilmiş belgeyi döndürmek ve otomatik biçimlendirme işleminiMeteor autoform, kancadan önce async geri arama

aşağıdaki kod var: belge üzerinde, ancak S3 sunucusuna

yüklemek için başarısız: doğru url depolayan

{{#autoForm collection="Tabs" id="newTabForm" type="method" meteormethod="createTab"}} 

    ... 
    <div class="modal-body"> 
     <fieldset> 
     {{> afFormGroup name='downloadUrl' type='file' class='file-bag'}} 
    ... 

AutoForm.hooks({ 
    newTabForm: { 
    before: { 
     insert: function(doc, template) { 
     console.log(doc); 
     var file  = $('.file-bag')[0].files[0]; 

     var self = this; 
     uploader.send(file, function(error, downloadUrl) { 
      if (error) { throw new Meteor.Error(error); } 

      doc = _.extend(doc, { downloadUrl: downloadUrl }); 
      self.result(doc); 
     }); 
     } 
    }, 
.... 

Meteor.methods({ 
createTab: function(doc) { 
    check(doc, TabSchema); 

    var priceInCents = doc.price * 100; 
    var extraTabAttributes = { 
    userId: Meteor.userId(), 
    price: priceInCents 
    }; 

    _.extend(doc, extraTabAttributes); 
    Tabs.insert(doc, function(error, result) { 
    if (error) { return error; } 
    }); 
} 

(.. // fakepath/dosya adı ancak garip, C görünüyor) Ayrıca yan soru, neden önceki hooks içinde console.log(doc); neden anythin müşteri/sunucuya g?

+0

ile değiştirilmesi durumunda, sizin durumunuzda Yani

before: { // Replace 'formType' with the form 'type' attribute to which this hook applies formType: function(doc) {} } 

söyledi? Sapan ile otoformu kullanmak için bir çözüm arıyordum. Henüz çok uzağa gitmedim. –

cevap