没有REST的Backbone.js使用ASP .net webservice

mat*_*sfh 4 javascript asp.net backbone.js

(对不起英文)

我有一个ASP .net webservice,它从oracle数据库获取返回JSON数据的数据.

TestWebService.asmx/getUserData
Run Code Online (Sandbox Code Playgroud)

我使用jQuery简单地使用ajax请求来测试它

$.ajax({
     type:"POST",
     data:"{}",
     dataType:"json",
     contentType:"application/json; charset=utf-8",
     url:"TestWebService.asmx/getUserData",
     success:function(data){
         console.log(data.d);
     }
});
Run Code Online (Sandbox Code Playgroud)

这项工作.

但现在我想尝试使用Backbone.js

应用程序具有以下内容:用户数据,文章和购买订单,其中购买订单是文章的集合,因此我认为在此模型中用于Backbone

User = Backbone.Model.extend({})
Article = Backbone.Model.extend({})
ArticleCollection = Backbone.Collection.extend({})
BuyOrder = Backbone.Model.extend({})
BuyOrderCollection = Backbone.Collection.extend({})
Run Code Online (Sandbox Code Playgroud)

视图只是2.一个表格,我显示用户数据和输入以添加文章并创建购买订单和可视化视图以显示购买订单,用户可以在其中查看一个购买订单的内容点击代码.

UserData和Article Data的一部分来自服务:(用户数据,如名称和文章数据,如代码,描述,价格等).

¿如何用这些数据填充Backbone模型?

提前致谢.

Bri*_*sio 6

所以,基本上,你想要覆盖Backbone.sync.目前正在通过该$.ajax函数执行RESTful内容(GET/POST/PUT/DELETE).了解默认情况下如何实现:http://documentcloud.github.com/backbone/docs/backbone.html#section-134

正如你所知道的那样,它非常简单......大约有30行左右的代码来创建/更新/删除/读取到post/put/delete/get $.ajax.

现在您已经了解了它们是如何做到的,您只需使用相同的模式实现自己的模式:

Backbone.sync = function(method, model, options) {
    // your implementation
};
Run Code Online (Sandbox Code Playgroud)

一旦你这样做,你就是金色的.您的模型将完成您希望它们的所有CRUD,并通过您的实现进行抽象Backbone.sync.

  • 如果您的后端需要POST以获取*用户数据,则默认同步将不起作用,因为它(正确地)使用GET进行获取操作http://documentcloud.github.com/backbone/docs/backbone.html#section -123 (2认同)