将集合绑定到主干中的模型
Bind a collection to a model in Backbone
我有一个服务器端类: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代码部分。分享我在主干网所做的一切:
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);
请提出建议。
这不是将集合"绑定"到后端的情况,例如:fetch
从服务器读取集合,save
(通过同步)写入。
首先,您需要通过设置url
属性让集合知道数据所在的位置。请参阅:http://backbonejs.org/#Collection-url。
其次,您需要使用fetch
方法实际检索数据。看见http://backbonejs.org/#Collection-获取。请注意,这是异步的,因此您需要等待success
回调。
要保存数据,请在各个模型上使用save
方法。看见http://backbonejs.org/#Model-保存。
已解决我找到了方法,定义了模型并填充了它!
相关文章:
- 将多级 mongodb 文档转换为 Backbone.js 模型/集合
- 主干:如何保存模型集合中模型的属性更改
- 我应该何时/为什么从 BackboneJS 模型/集合扩展函数返回
- 主干 + 木偶 - 模型/集合的内存管理最佳实践
- 为什么预期的路线不使用帆.js蓝图 API 将项目添加到模型集合
- 主干模型/集合中的Javascript范围界定问题
- 使用Knockback.js过滤中的视图模型集合
- 正在清除主干模型/集合内存泄漏
- 主干集合和模型url,批量模型集合保存
- 如何从asp.net mvc将模型集合注入backbone.js
- JavaScript:Backbone.js获取json并将其加载到模型集合中
- 如何为我的所有BackboneJS模型/集合REST调用添加一个基本URL
- 我如何检测一个对象是一个水线模型或模型集合在Sails.js
- 在嵌套的骨干(木偶)模型/集合中冒泡事件
- 骨干关系——深度嵌套模型/集合
- 如何在主干视图中加载模型集合
- 类似骨干模型/集合的React库
- 从React组件更新模型/集合
- 主干监听嵌套模型/集合
- BackboneJS模型/集合urlRoot/URL的意义