Javascript 如何阻止单个模型将其id添加到主干中的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

我对backbone.js有问题。我正在为现有的api创建一个前端,这对我来说是不可接受的。问题是,当我尝试向集合添加新模型时,我可以在firebug中看到,每次主干尝试创建模型时,它都会将属性名称附加到url

例如:

  • 默认url=/api/数据库
  • 当我执行GET=/api/database时
  • 当我使用对象{“name”:“test”}执行GET/POST时= /结果是api/数据库/测试
  • 有人知道如何避免这种行为吗

    你好,克恩

    我的看法是:

    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。

    在这里,您只需要将Model
    url
    属性设置为要调用的url。这将覆盖默认行为

    您可以设置
    idAttribute:“名称”
    。所以id是name,并没有url函数,主干使用它的默认url函数。