backbone.js に問題があります。アクセスできないため、既存のAPIのフロントエンドを作成しています。問題は、新しいモデルをコレクションに追加しようとすると、バックボーンがモデルを作成しようとするたびに属性名を URL に追加することが firebug で確認できることです。
例:
- デフォルトの URL = /api/データベース
- GET = /api/database を実行すると
- object {"name": "test"} = /api/database/test で GET/POST を実行すると、結果が返されます
誰でもその動作を回避する方法を知っていますか?
こんにちはカーン
私の見解:
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() {
}
});