将集合而不是数组传递给 fetch().then() 回调
pass a collection instead of array to fetch().then() callback
从服务器获取数据的模块和returns一个Promise
MedicineManager.module("Entities", function (Entities, MedicineManager, Backbone, Marionette, $, _) {
Entities.Suggestion = Backbone.Model.extend({
default: {
suggestion: ""
}
});
Entities.SuggestionCollection = Backbone.Collection.extend({
model: Entities.Suggestion,
comparator: "suggestion"
});
var API = {
getSuggestions: function (medicine) {
var suggestions = new Entities.SuggestionCollection();
suggestions.url="/medicine_suggestions/?id=" + medicine;
return suggestions.fetch();
}
};
MedicineManager.reqres.setHandler("suggestion:entities", function (medicine) {
return API.getSuggestions(medicine);
});
});
调用上述模块获取数据的模块
MedicineManager.module("MedicinesApp.Suggest", function (Suggest, MedicineManager,
Backbone, Marionette, $, _) {
MedicineManager.request("suggestion:entities", "paracetamol").then(function (medicines) {
});
});
我如何获取集合而不是数组作为 then()
中回调函数的参数,因为传递给回调的 medicines
参数在获取值后给出了一个数组。
将成功回调与选项一起传递,backbone:
将使用集合作为第一个参数调用它
Entities.SuggestionCollection = Backbone.Collection.extend({
model: Entities.Suggestion,
comparator: "suggestion"
});
var API = {
getSuggestions: function(medicine, options) {
var suggestions = new Entities.SuggestionCollection([],{
url : "/medicine_suggestions/?id=" + medicine
});
return suggestions.fetch(options);
}
};
MedicineManager.reqrest.setHandler("suggestion:entities",API.getSuggestions);
你可以像这样使用:
MedicineManager.request("suggestion:entities", "paracetamol", {
success: function(medicines) {}
});
而不是直接返回 xhr 承诺,filter it via .then
将您的 collection 设置为承诺值:
var API = {
getSuggestions: function (medicine) {
var suggestions = new Entities.SuggestionCollection();
suggestions.url="/medicine_suggestions/?id=" + medicine;
return suggestions.fetch().then(function() {
return suggestions;
});
}
};
MedicineManager.request(...).then(function (medicines) { });
中的第一个参数 (medicines
) 将是您的 collection。
从服务器获取数据的模块和returns一个Promise
MedicineManager.module("Entities", function (Entities, MedicineManager, Backbone, Marionette, $, _) {
Entities.Suggestion = Backbone.Model.extend({
default: {
suggestion: ""
}
});
Entities.SuggestionCollection = Backbone.Collection.extend({
model: Entities.Suggestion,
comparator: "suggestion"
});
var API = {
getSuggestions: function (medicine) {
var suggestions = new Entities.SuggestionCollection();
suggestions.url="/medicine_suggestions/?id=" + medicine;
return suggestions.fetch();
}
};
MedicineManager.reqres.setHandler("suggestion:entities", function (medicine) {
return API.getSuggestions(medicine);
});
});
调用上述模块获取数据的模块
MedicineManager.module("MedicinesApp.Suggest", function (Suggest, MedicineManager,
Backbone, Marionette, $, _) {
MedicineManager.request("suggestion:entities", "paracetamol").then(function (medicines) {
});
});
我如何获取集合而不是数组作为 then()
中回调函数的参数,因为传递给回调的 medicines
参数在获取值后给出了一个数组。
将成功回调与选项一起传递,backbone:
将使用集合作为第一个参数调用它Entities.SuggestionCollection = Backbone.Collection.extend({
model: Entities.Suggestion,
comparator: "suggestion"
});
var API = {
getSuggestions: function(medicine, options) {
var suggestions = new Entities.SuggestionCollection([],{
url : "/medicine_suggestions/?id=" + medicine
});
return suggestions.fetch(options);
}
};
MedicineManager.reqrest.setHandler("suggestion:entities",API.getSuggestions);
你可以像这样使用:
MedicineManager.request("suggestion:entities", "paracetamol", {
success: function(medicines) {}
});
而不是直接返回 xhr 承诺,filter it via .then
将您的 collection 设置为承诺值:
var API = {
getSuggestions: function (medicine) {
var suggestions = new Entities.SuggestionCollection();
suggestions.url="/medicine_suggestions/?id=" + medicine;
return suggestions.fetch().then(function() {
return suggestions;
});
}
};
MedicineManager.request(...).then(function (medicines) { });
中的第一个参数 (medicines
) 将是您的 collection。