如何访问 Backbone 获取数据服务器端
How to access Backbone Fetch data server side
我有一个 backbone 模型用于调用 fetch。我有一个 Flask 服务器,我需要在上面访问 backbone 模型的 ID。我似乎无法获得服务器上模型的 ID。如何在我的 Flask 代码
中访问 entityId
BB.Politician = Backbone.Model.extend({
defaults: {
type: "Politician"
},
url: "/my_url_here"
});
var currentUser = new BB.Politician({"entityId": "1625"});
currentUser.fetch({
//method: "POST",
success: function(user){
currentUserView.render();
}
});
#Flask server code
@app.route('/my_url_here', methods=['GET', 'POST'])
def return_poitician():
print request
print request.args
print request.values
#none of the above print statements are giving me the "entityId"
return data
我也尝试在路由中添加 id,但在 fetch()
执行时抛出 404 错误:
@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])
def return_poitician(entityId):
print entityId
@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])
没有收到任何东西 id
因为你没有发送任何东西。
Backbone fetch 使用模型的 id
字段来构造 fetch URL,在你的情况下我建议将 entityId
变成 id
:
BB.Politician = Backbone.Model.extend({
defaults: {
type: "Politician"
},
url: "/my_url_here"
});
var currentUser = new BB.Politician({"id": "1625"});
并让 Backbone 构造 GET,它看起来像:
"/my_url_here/" + this.get('id'); // this refers to model
变成
"/my_url_here/1625"
Backbone.Model.url
也接受函数作为值,因此您可以定义自己的构造 URL 的逻辑。例如,如果您必须保留 entityId
,您可以像这样构建 url
:
url: function () {
return "/my_url_here" + this.get('entityId');
}
我有一个 backbone 模型用于调用 fetch。我有一个 Flask 服务器,我需要在上面访问 backbone 模型的 ID。我似乎无法获得服务器上模型的 ID。如何在我的 Flask 代码
中访问entityId
BB.Politician = Backbone.Model.extend({
defaults: {
type: "Politician"
},
url: "/my_url_here"
});
var currentUser = new BB.Politician({"entityId": "1625"});
currentUser.fetch({
//method: "POST",
success: function(user){
currentUserView.render();
}
});
#Flask server code
@app.route('/my_url_here', methods=['GET', 'POST'])
def return_poitician():
print request
print request.args
print request.values
#none of the above print statements are giving me the "entityId"
return data
我也尝试在路由中添加 id,但在 fetch()
执行时抛出 404 错误:
@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])
def return_poitician(entityId):
print entityId
@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])
没有收到任何东西 id
因为你没有发送任何东西。
Backbone fetch 使用模型的 id
字段来构造 fetch URL,在你的情况下我建议将 entityId
变成 id
:
BB.Politician = Backbone.Model.extend({
defaults: {
type: "Politician"
},
url: "/my_url_here"
});
var currentUser = new BB.Politician({"id": "1625"});
并让 Backbone 构造 GET,它看起来像:
"/my_url_here/" + this.get('id'); // this refers to model
变成
"/my_url_here/1625"
Backbone.Model.url
也接受函数作为值,因此您可以定义自己的构造 URL 的逻辑。例如,如果您必须保留 entityId
,您可以像这样构建 url
:
url: function () {
return "/my_url_here" + this.get('entityId');
}