1

我对backbone.js 有疑问。我正在为现有的 api 创建一个前端,对我来说无法访问。问题是,当我尝试将新模型添加到集合中时,我可以在我的萤火虫中看到,每次骨干网尝试创建模型时,它都会将属性名称附加到 url。

例子:

  1. 默认网址 = /api/数据库
  2. 当我执行 GET = /api/database
  3. 当我使用对象执行 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() {

  }
});
4

1 回答 1

2

默认情况下,Backbone 以这种方式创建模型 URL:{collection url}/{model id}.

它将集合 URL 视为 RESTful 方式的基本 URL。

在这里,您只想将 Modelurl属性设置为您要调用的 URL。这将覆盖默认行为。http://backbonejs.org/#Model-url

于 2013-10-25T17:52:56.113 回答