2

私はバックボーンにかなり慣れていないので、ASMX Webサービスから供給されるオートコンプリート機能を作成しようとしています。私が抱えていると思われる問題は、Webサービスが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();
              }
            });

誰かが私が間違っていることを見ることができますか? ここに座っている時間が長すぎます!

助けていただければ幸いです;)

4

2 に答える 2

0

これは私のために働く

AirlineCollection

parse: function (response) {
    var data = (typeof response.d) == 'string' ? eval('(' + response.d + ')') :    response.d;
    return data;        
}
于 2013-09-07T06:49:19.643 に答える