没有REST的Backbone.js使用ASP .net web服务

时间:2011-10-30 21:52:55

标签: javascript asp.net backbone.js

(对不起英语)

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

TestWebService.asmx/getUserData

我使用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);
     }
});

这项工作。

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

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

User = Backbone.Model.extend({})
Article = Backbone.Model.extend({})
ArticleCollection = Backbone.Collection.extend({})
BuyOrder = Backbone.Model.extend({})
BuyOrderCollection = Backbone.Collection.extend({})

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分: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
};

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