у меня проблема с backbone.js. Я создаю интерфейс для существующего API, для меня недоступного. Проблема в том, что когда я пытаюсь добавить новую модель в коллекцию, я вижу в своем firebug, что каждый раз, когда магистраль пытается создать модель, она добавляет имя атрибута к URL-адресу.
Пример:
- URL-адрес по умолчанию = /api/база данных
- когда я выполняю GET = /api/database
- когда я выполняю GET/POST с объектом {"name": "test"} = /api/database/test является результатом
Кто-нибудь знает, как избежать такого поведения?
Привет Керн
Мой взгляд:
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() {
}
});
idAttribute: "name"
. Таким образом, идентификатор — это имя, а функции URL нет, магистраль использует функцию URL по умолчанию. - person KiT O   schedule 25.10.2013