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
Jquery Backbone.js用于保存模型数据的代码段。_Jquery_Backbone.js - Fatal编程技术网

Jquery Backbone.js用于保存模型数据的代码段。

Jquery Backbone.js用于保存模型数据的代码段。,jquery,backbone.js,Jquery,Backbone.js,任何人都可以发布一个小的代码片段来将主干模型保存到数据库中吗 jquery将覆盖Backbone.sync 这会有很大的帮助,谢谢 根据经验,最好在集合和模型中显式调用AJAX,而不是使用常规的Sync。给你更多的灵活性。下面是我们对待办事项列表中的一组任务所做的操作 myModel = new Model id:'model1' $.ajax '/urlWhereUWantToSaveModel', type: 'POST' data: myModel.toJSON() data

任何人都可以发布一个小的代码片段来将主干模型保存到数据库中吗

jquery将覆盖Backbone.sync


这会有很大的帮助,谢谢

根据经验,最好在集合和模型中显式调用AJAX,而不是使用常规的
Sync
。给你更多的灵活性。下面是我们对待办事项列表中的一组任务所做的操作

myModel = new Model id:'model1'

$.ajax '/urlWhereUWantToSaveModel',
  type: 'POST'
  data: myModel.toJSON()
  dataType: 'json'
  success: (response) ->
    // Server response should be json object with an error property if something went wrong
    if response.error
      console.log 'save failed'
    else
      console.log 'save succeeded'
  error: ->
    console.log 'error'
TaskCollection = Backbone.Collection.extend({ // Get all existing tasks from the server fetch: function(options) { var collection = this; // Remove references to callbacks so that calls further down // don't trigger them again! var onsuccess = options.success; if (options.success) delete options.success; var onerror = options.error; if (options.error) delete options.error; $.ajax({ url: '/get_tasks', type: 'GET', dataType: 'json', success: function(object, status) { collection.refresh(collection.parse(object)); if (onsuccess) onsuccess(collection, object); }, error: function(xhr, status, error) { if (onerror) onerror(collection, xhr.responseText); } } }); TaskModel = Backbone.Model.extend({ // Save a task on the server save: function(options) { var model = this; $.ajax({ url: '/save_task', type: 'POST', dataType: 'json', data: model.toJSON(), success: function(object, status) { if (options.success) options.success(model, object); }, error: function(xhr, status, error) { if (options.error) options.error(model, object.content); } } }); var tasks = new TaskCollection(); tasks.fetch(); TaskCollection=Backbone.Collection.extend({ //从服务器获取所有现有任务 获取:函数(选项){ var集合=这个; //删除对回调的引用,以便进一步向下调用 //不要再触发它们! var onsuccess=options.success;如果(options.success)删除options.success; var onerror=options.error;如果(options.error)删除options.error; $.ajax({ url:“/get_tasks”, 键入:“GET”, 数据类型:“json”, 成功:功能(对象、状态){ collection.refresh(collection.parse(object)); if(onsuccess)onsuccess(collection,object); }, 错误:函数(xhr、状态、错误){ if(onerror)onerror(collection,xhr.responseText); } } }); TaskModel=Backbone.Model.extend({ //在服务器上保存任务 保存:功能(选项){ var模型=此; $.ajax({ url:“/save_task”, 键入:“POST”, 数据类型:“json”, 数据:model.toJSON(), 成功:功能(对象、状态){ if(options.success)options.success(model,object); }, 错误:函数(xhr、状态、错误){ if(options.error)options.error(model,object.content); } } }); var tasks=new TaskCollection(); tasks.fetch(); 请注意,我们假设服务器为每个任务对象吐出一个unqiue
id
属性。主干将使用该属性来标识模型。因此您可以执行类似于
tasks的操作。获取(12)
以检索id为12的任务

还要注意的是,在Planbox中,我们在
save_status
move
等模型上有一组更丰富的
save
功能。这使我们能够灵活地添加更多的前后处理,如验证和更新细节

我们还扩展了通用主干集合和模型对象,以封装上述获取和保存函数