gpt4 book ai didi

javascript - 将集合绑定(bind)到 Backbone 中的模型

转载 作者:行者123 更新时间:2023-11-28 11:04:32 25 4
gpt4 key购买 nike

我有一个服务器端类:TopicsListModel其属性如下:

public class TopicsListModel
{
public TopicsListModel()
{
ChildTopics = new HashSet<TopicsListModel>();
}

public int Id { get; set; }
public string Name { get; set; }
public ICollection<TopicsListModel> ChildTopics { get; set; }
}

有一个返回列表的函数,

public JsonResult SearchTopic(String topic)
{
var topics = LandingManager.SearchTopics(topic);
//return Json(topics);
return new JsonResult { Data = topic, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}

我需要将其添加到 Backbone 模型和集合中。我是 Backbone 的新手,你可以猜到我正在挣扎。任何帮助将不胜感激。

我想构建一个模型来存储如下数据:

{    name: "Model1",    id: 1,    submodels: [{ name: "Submodel1", id: 2 }, { name: "Submodel1", id: 2 }] } 

我无法这样做,我在设置基本集合(返回我共享的数据的 ASP.NET MVC 代码部分)时遇到问题。分享我在 Backbone 中所做的一切:

TestBB = function () {
if (!window.console) window.console = { log: function () { } };

var treeModel = Backbone.Model.extend({});
var treeSubModel = Backbone.Model.extend({});
var treeCollection = Backbone.Collection.extend({
model: treeSubModel,
initialize: function () {
console.log('Collection Initialized');
}
});
var treeView = Backbone.View.extend({
el: $('#tree-view'),
initialize: function () {
// this.collection.bind("render", this.render, this);
// this.collection.bind("addAll", this.addAll, this);
// this.collection.bind("addOne", this.addOne, this);
_.bindAll(this);
},
render: function () {
console.log("render");
console.log(this.collection.length);
$(this.el).html(this.template());
this.addAll();
var template = _.template($("#template").html(), {});
this.el.html(template);
},
addAll: function () {
console.log("addAll");
this.collection.each(this.addOne);
},
addOne: function (model) {
console.log("addOne");
view = new treeView({ model: model });
$("ul", this.el).append(view.render());
},
events: { "click #btnFind": "doFind" },
doFind: function (event) { alert('event fired'); }
});

return {
TreeView: treeView
};} (Backbone);

请提出建议。

最佳答案

这不是将集合“绑定(bind)”到后端的情况,例如:您从服务器获取要读取的集合,然后保存 (通过同步)写入。

首先,您需要通过设置 url 属性让集合知道数据所在的位置。请参阅:http://backbonejs.org/#Collection-url .

其次,您需要使用 fetch 方法实际检索数据。请参阅http://backbonejs.org/#Collection-fetch 。请注意,这是异步的,因此您需要等待 success 回调。

要保存数据,请在各个模型上使用save 方法。请参阅http://backbonejs.org/#Model-save .

关于javascript - 将集合绑定(bind)到 Backbone 中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com