2013-07-09 137 views
0

沒有哈希直接的路線,我大概這解決了錯誤的方式,但包涵:在我server.js呼叫從骨幹

我得到這個

tweetThisThing = require('./lib/kustomtwitter'), 

app.get('/tweet/:msg', function(req, res){ 
var tweet = req.params.msg; 
tweetThisThing(tweet); // le magic 
    res.redirect('/cars'); 
}); 

當我直接把我的瀏覽器到http://localhost:3000/tweet/This will be tweeted鳴叫成功發出。

當我試圖通過骨幹調用同一Express端點就像這樣:

在我的骨幹腳本中,我得到這個

app.navigate('tweet/' + theMessageThatWillBeTweeted, {trigger:true, replace: true}); 

,骨幹總是迫使路線的哈希,然後失敗發推文http://localhost:3000/#tweet/This will not be tweeted

我知道這是預期的行爲和一些「解決方法」涉及添加pushState:true到我的骨幹腳本,但我似乎無法得到它的工作。

有一個簡單的辦法讓我想還是需要設置爲這個特定用例骨幹路由的行爲?

回答

1

如果打開pushState

Backbone.history.start({pushState: true}); 

不起作用的替代方法是繞過骨幹一起,只使用jQuery.get。例如:

$.get('tweet/' + theMessageThatWillBeTweeted, function(result) { 
    // Also instead of redirecting you could output the twitter response code 
    // and verify the request was a success here 
    console.log(result); 
}); 

順便說一句,使用GET可能不是這樣做的最佳方式。你可能會更好使用POST這會給你更多的靈活性和更清潔的網址。

+0

感謝您的善意介入。 真的想要骨幹的方式工作,但我不能做到這一點,所以我很欣賞替代方案。 – Wayfarer