2017-03-23 37 views
0

我正嘗試調用meteor方法,在將用戶重定向到相關url(使用生成的文檔_id)之前插入文檔。Meteor方法在mozilla中無法正常工作

的代碼目前作品鉻但不是在Firefox上,其中在Firefox它似乎一下就馬上重定向而不實際插入任何東西。

我在底部附上我的代碼。誰能告訴我哪裏出了問題,我能做些什麼來解決它?爲什麼Chrome和Firefox在這種情況下會有不同的表現?

提供的任何幫助非常感謝!

client.js
newDoc(){ 
    Meteor.call('addDoc',{ 
     // some parameters 
    }) 
    } 

clientandserver.js(流星方法)

'addDoc'(obj){ 
    console.log(obj); // does not output anything on firefox 
    DocumentData.insert({ 
     //some parameters 
    },function(err,documentID){ 
     if (Meteor.isClient){ 
     window.location = '/docs/' + documentID; 
     // redirection happens before insertion on firefox 
     } 
    }); 
    } 
+0

你的newDoc()看起來像一個幫手。在Blaze中,助手可以反覆意外地調用,所以助手不應該像去服務器那樣做,或者更糟糕的是插入一條新記錄。你可能會得到比預期更多的插入。 – zim

回答

2

帶來window.location給所述客戶端。像:

newDoc(){ 
    Meteor.call('addDoc', data, function(error, result){ 
    if(result){ 
     window.location = '/docs/' + documentID; 
    } 
    }) 
} 

並把只在服務器端插入,如:

'addDoc'(obj){ 
    return DocumentData.insert({ 
     //some parameters 
    }); 
    } 

我用這個結構,它在這兩個火狐&鉻爲我工作。

+0

你是個天才! –

+1

真的嗎?我雖然沒有:第 –