使用主干网.js使用“d”从 ASMX 获取数据

Using backbone.js to get data from ASMX with the 'd'

本文关键字:ASMX 获取 数据 主干网 js 使用      更新时间:2023-09-26

我是Backbone的新手,我一直在尝试用它创建自动完成功能,由ASMX网络服务提供。 我似乎遇到的问题是,当我的网络服务以 JSON 格式返回时(在与它进行了痛苦的战斗之后),它将响应包装在"d"(数据集)中。 如何让视图理解这一点并获取正确的数据?

这是我的代码:-

var Airline = Backbone.Model.extend({
                initialize: function () {},
                defaults: {
                    name: 'Airline Name',
                    rating: 50,
                    icon: '/blank.png'
                }
            });
            var AirlineCollection = Backbone.Collection.extend({
                model: Airline,
                contentType: "application/json",
                url: '/ControlTower/public/runway.asmx/all-airlines',
                parse: function (response) {
                    return response;
                }
            });
            var SelectionView = Backbone.View.extend({
              el : $('#airline'),
              render: function() {
                $(this.el).html("You Selected : " + this.model.get('AirlineName'));
                return this;
              },
            });
var airlines = new AirlineCollection();
            airlines.fetch({async: false, contentType: "application/json" });
            var airlineNames = airlines.pluck("AirlineName");
$("#airline").autocomplete({
              source : airlineNames,
              minLength : 1,
              select: function(event, ui){
                var selectedModel = airlines.where({name: ui.item.value})[0];
                var view = new SelectionView({model: selectedModel});
                view.render();
              }
            });

谁能看出我做错了什么?我已经坐在这里太久了!

感谢帮助;)

在你的AirlineCollection中呢:

parse: function (response) {
  return response.d;
}
这对

我有用

航空公司收藏

parse: function (response) {
    var data = (typeof response.d) == 'string' ? eval('(' + response.d + ')') :    response.d;
    return data;        
}