Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干正在模型URL中插入查询字符串。我该怎么阻止它?_Backbone.js_Backbone Views_Backbone Routing - Fatal编程技术网

Backbone.js 主干正在模型URL中插入查询字符串。我该怎么阻止它?

Backbone.js 主干正在模型URL中插入查询字符串。我该怎么阻止它?,backbone.js,backbone-views,backbone-routing,Backbone.js,Backbone Views,Backbone Routing,我有一个像这样的主干模型 我有一个模板,可以在表单中打印出地址。模板由在其“render”函数中传递地址id的视图呈现。通过类似于“address/:id”的路由到达视图 视图如下所示: var AddressView = Backbone.View.extend({ el: $('#myclass'), render: function(options) { var that = this; var addr = new A.add

我有一个像这样的主干模型

我有一个模板,可以在表单中打印出地址。模板由在其“render”函数中传递地址id的视图呈现。通过类似于“address/:id”的路由到达视图

视图如下所示:

var AddressView = Backbone.View.extend({
      el: $('#myclass'),

      render: function(options) {
        var that = this;

        var addr = new A.address({id: options.aid});

        addr.fetch({
            reset: true,
            success: function(address) {
              var template = _.template(ATemplate, {address: address});
              that.$el.html(template);
            }
        });

        return this;
      },

      events: {
        'submit .edit-address-form': 'editAddress'
      },

      editAddress: function(ev) {

        //serializeObject creates JSON object from form data
        var addressDetails = $(ev.currentTarget).serializeObject();

        addr.save(addressDetails, function(addr) {
            R.router.navigate('', {trigger: true});
        });
        return false;
      }
    });
  return {
      addressView: new AddressView()
  };
}))

有两个问题。第一个问题是永远不会调用“editAddress”函数,即使类名正确且按钮类型=为“submit”

第二个问题是,当我提交地址表单时,URL是乱码的,在基本URL和/#/address之间插入一个查询字符串,如中所示

http:///ldmanclient/address=2500+莫菲特+图书馆和地址2=加州大学+加州大学%2C+伯克利&城市=伯克利&邮政编码=94720&mailcode=6000&aid=1#/address/1


以前有人见过这种行为吗?我做错了什么?

正如mu所说,表单是在主干到达之前以标准方式提交的。尝试阻止提交操作:

  editAddress: function(ev) {
    ev.preventDefault();

    // same code as above
  }

你有没有想过???
  editAddress: function(ev) {
    ev.preventDefault();

    // same code as above
  }