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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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 通过AJAX请求提交表单_Backbone.js - Fatal编程技术网

Backbone.js 通过AJAX请求提交表单

Backbone.js 通过AJAX请求提交表单,backbone.js,Backbone.js,主干网基于表单中输入的数据从RESTful web服务检索数据的约定/最佳实践是什么 据我所知,我可以在视图中注册一个点击观察者,因此当点击表单提交按钮时,视图将从表单中检索数据。但我不清楚是从视图、模型还是路由器执行AJAX调用 基本上,我不清楚以下哪项是惯例: 让视图获取参数,执行AJAX调用,然后将返回的JSON传递给模型 让视图获取参数并将其传递给模型,让它执行AJAX调用并从web服务检索数据 让视图获取参数并将其传递给路由器,让它执行AJAX调用并相应地填充适当的模型和视图 注意:我

主干网基于表单中输入的数据从RESTful web服务检索数据的约定/最佳实践是什么

据我所知,我可以在视图中注册一个点击观察者,因此当点击表单提交按钮时,视图将从表单中检索数据。但我不清楚是从视图模型还是路由器执行AJAX调用

基本上,我不清楚以下哪项是惯例:

  • 让视图获取参数,执行AJAX调用,然后将返回的JSON传递给模型
  • 视图获取参数并将其传递给模型,让它执行AJAX调用并从web服务检索数据
  • 视图获取参数并将其传递给路由器,让它执行AJAX调用并相应地填充适当的模型和视图
    注意:我需要将搜索条件提交给RESTful Web服务,该服务希望发布数据;如果我错了,请纠正我,但它似乎不能使用:
    fetch
    save
    。我是否应该在模型中创建一个函数,使用$.ajax({…})发布参数并接收JSON数据?

    主干.js模型已经设置为执行RESTful请求。方法2是您想要做的

    您必须在模型中设置的唯一内容是URL:

    MyModel = Backbone.Model.extend({
        url: 'http://path/to/my/RESTful/service'
    });
    
    MyView = Backbone.View.extend({
       events: {
           'submit #myform': 'saveToModel'
       },
    
       initialize: function() {
           // ...
       },
    
       saveToModel: function() {
           // this triggers a RESTFul POST (or PUT) request to the URL specified in the model
           this.model.save({
              'foo': 'Foo!',
              'bar': 'Bar!'
           });
       }
    
    
    });
    

    backbone.js模型已经设置为执行RESTful请求。方法2是您想要做的

    您必须在模型中设置的唯一内容是URL:

    MyModel = Backbone.Model.extend({
        url: 'http://path/to/my/RESTful/service'
    });
    
    MyView = Backbone.View.extend({
       events: {
           'submit #myform': 'saveToModel'
       },
    
       initialize: function() {
           // ...
       },
    
       saveToModel: function() {
           // this triggers a RESTFul POST (or PUT) request to the URL specified in the model
           this.model.save({
              'foo': 'Foo!',
              'bar': 'Bar!'
           });
       }
    
    
    });
    

    将提交事件绑定到表单id或div id,而不是按钮id。

    将提交事件绑定到表单id或div id,而不是按钮id。

    fetch
    save
    似乎不是可行的选项(参见原始帖子)。我应该创建一个处理请求的新函数吗?主干网在RESTful服务方面很聪明<代码>保存()在这个用例中工作得非常好。模型知道,当它是一个新资源时,应该使用
    POST
    请求。也就是说,如果模型上没有设置
    id
    元素。如果存在
    id
    元素集,则模型将使用
    PUT
    请求<另一方面,code>fetch将使用
    GET
    请求。我对主干网有点陌生,但不应该将数据发布到处理它的控制器/路由?在我看来,这更符合MVC原则。。。但是如果你想在一条路线上发帖子,那么在主干网中是如何工作的呢?例如,在sammy.js中,这是非常简单的
    fetch
    save
    似乎不是可行的选项(参见原始帖子)。我应该创建一个处理请求的新函数吗?主干网在RESTful服务方面很聪明<代码>保存()在这个用例中工作得非常好。模型知道,当它是一个新资源时,应该使用
    POST
    请求。也就是说,如果模型上没有设置
    id
    元素。如果存在
    id
    元素集,则模型将使用
    PUT
    请求<另一方面,code>fetch将使用
    GET
    请求。我对主干网有点陌生,但不应该将数据发布到处理它的控制器/路由?在我看来,这更符合MVC原则。。。但是如果你想在一条路线上发帖子,那么在主干网中是如何工作的呢?例如,在sammy.js中,这非常简单