Javascript 如何阻止单个模型将其id添加到主干中的url?
我对backbone.js有问题。我正在为现有的api创建一个前端,这对我来说是不可接受的。问题是,当我尝试向集合添加新模型时,我可以在firebug中看到,每次主干尝试创建模型时,它都会将属性名称附加到url 例如:Javascript 如何阻止单个模型将其id添加到主干中的url?,javascript,backbone.js,backbone-model,backbone.js-collections,Javascript,Backbone.js,Backbone Model,Backbone.js Collections,我对backbone.js有问题。我正在为现有的api创建一个前端,这对我来说是不可接受的。问题是,当我尝试向集合添加新模型时,我可以在firebug中看到,每次主干尝试创建模型时,它都会将属性名称附加到url 例如: 默认url=/api/数据库 当我执行GET=/api/database时 当我使用对象{“name”:“test”}执行GET/POST时= /结果是api/数据库/测试 有人知道如何避免这种行为吗 你好,克恩 我的看法是: window.databaseView = Back
window.databaseView = Backbone.View.extend({
el: '#content',
template: new EJS({url: 'js/templates/databaseView.ejs'}),
initialize: function() {
var self = this;
this.collection.fetch({
success: function() {
console.log(self.collection);
var test = self.collection.get("_system");
console.log(test);
self.collection.get("_system").destroy();
self.collection.create({name: "test"});
}
});
},
render: function(){
$(this.el).html(this.template.render({}));
return this;
}
});
型号:
window.Database = Backbone.Model.extend({
initialize: function () {
'use strict';
},
idAttribute: "name",
defaults: {
}
});
收藏:
window.ArangoDatabase = Backbone.Collection.extend({
model: window.Database,
url: function() {
return '../../_api/database/';
},
parse: function(response) {
return _.map(response.result, function(v) {
return {name:v};
});
},
initialize: function() {
this.fetch();
},
getDatabases: function() {
this.fetch();
return this.models;
},
dropDatabase: function() {
},
createDatabse: function() {
}
});
默认情况下,主干网通过以下方式创建模型url:
{collection url}/{model id}
它认为集合URL是以REST方式的基本URL。
在这里,您只需要将Modelurl
属性设置为要调用的url。这将覆盖默认行为 您可以设置idAttribute:“名称”
。所以id是name,并没有url函数,主干使用它的默认url函数。