这是我的问题:
- 我有一个包含集合的容器视图。
- 在页面加载时,我得到一些模型,用它们填充这个集合,然后渲染模型
- 我开火和事件
- 当此事件触发时,我想调用我的 api(它根据输入参数返回模型)
- 然后我想从集合中删除所有现有模型,用我的新模型重新填充,然后渲染模型
这就是我设置模型/集合/视图的方式
var someModel = Backbone.Model.extend({});
var someCollection = Backbone.Collection.extend({
model: someModel,
url: "api/someapi"
});
var someView = Backbone.View.extend({
events: {
"click #refresh": "refreshCollection"
},
initialize: function () {
this.collection.bind("reset", this.render, this);
},
render: function () {
// render stuff
},
refreshCollection: function (e) {
this.collection.fetch({data: {someParam: someValue});
this.render();
}
});
var app = function (models) {
this.start = function () {
this.models = new someCollection();
this.view = new someView({collection: this.models});
this.view.reset(models);
};
};
我的兴趣点在这里:
refreshCollection: function (e) {
this.collection.fetch({data: {someParam: someValue});
this.render();
}
我传入了一些参数,我的 api 返回了一个 json 模型数组。我想摆脱集合中的所有现有模型,并将所有返回的模型放入集合中,然后更新视图(使用渲染())
我知道使用 collection.set 或 collection.reset 可以做到这一点。这两个都采用了一系列模型。我没有要传入的模型数组。
我试过了:
this.collection.fetch({
data: {someParam: someValue},
success: function (response) {
doSomethingWith(response.models)
}
});
但是当我拿到模型时,我不知道如何处理它们。
任何朝着正确方向推动的人将不胜感激!