.asmx Webメソッドからデータを取得しようとしましたが、ajax呼び出しで失敗しています。 1つのパラメータ、グループIDという名前の整数をとるGetUsers
jquery ajaxがbackbone.jsコレクションのoptions.dataで定義されていないために失敗しました
// BaseCompositeView is basically an object extended from Marionette.CompositeView
MyListView = App.Base.Objects.BaseCompositeView.extend({
// contents removed for brevity
});
// BaseModel is basically an object extended from Backbone.Model
MyListView.Model = App.Base.Objects.BaseModel.extend({
// nothing here
});
// BaseCollection is basically an object extended from Backbone.Collection
MyListView.Collection = App.Base.Objects.BaseCollection.extend({
url: "../WebServices/MyService.asmx/GetUsers",
model: MyListView.Model,
initialize: function(options) {
this.options = _.extend({}, this.defaults, this.options);
this.options.data = JSON.stringify({
"groupID": parseInt(App.Prop.get("GroupID"), 10)
});
}
});
var group_users_view = new MyListView({
tagname: "div",
model: new MyListView.Model(),
collection: new MyListView.Collection()
});
マイウェブ方法:ここに私のJSコードの一部です。このページによると:http://backbonejs.org/#Collection-constructor、MyListView.Collection内のinitializeメソッドは、コレクションの作成時に呼び出されます。これは、MyListViewのインスタンス化時に発生します。
エラーは次の行にファイルjqueryの-1.12.3.js内部で発生します。
ここxhr.send((options.hasContent && options.data) || null);
、options.dataがundefined
です。ただし、オプションのurlプロパティは正しいです。なぜjquery ajaxは私が渡しているデータを認識しないのですか?
おかげルイ:あなたは
this.options
の全てがjQuery.ajax
に渡されるものの一部になりたい場合は、あなたのようなものを持っている可能性が!あなたは絶対に正しいです。私は私のコレクションに同期メソッドを追加する必要がありました。これはパズルの欠けている部分だった。基本的には、ここでは、メソッドが「読み込み」かどうかを確認するための条件を追加し、そうであれば最終的に '$ .ajax()'を呼び出すカスタムメソッドを呼び出します。このカスタムメソッド呼び出しは、私のコレクションのinitializeメソッドで初期化された 'collection.options.data'で渡す場所です。 – SpartaSixZero