我知道有很多关于这个的问题,我已经通过这些答案解决了第一个问题。我决定不使用我的全局名称空间,而是使用这种类型的解决方案。但现在我有了一个与相同框架相关的不同问题。我的模型是这样开始的。
define([
'backbone',
'backbone.relational'
], function(Backbone){
var MenuNode = function () {
Backbone.RelationalModel.apply(this,arguments);
}
var NodeCollection = function() {
Backbone.Collection.apply(this,arguments);
}
MenuNode = Backbone.RelationalModel.extend({
constructor: MenuNode,
relations:[
{
type: Backbone.HasMany,
key: "children",
relatedModel: MenuNode,
collectionType: NodeCollection,
reverseRelation: {
key: "parent"
}
}
]
})
NodeCollection = Backbone.Collection.extend({
constructor: NodeCollection,
model: MenuNode,
url: function() {
return "/nodes"
}
})这将为我的应用程序创建模型nessecary,这是一个jstree。但我的问题是如何创建与api的连接和我的关系,以及如何使用backbone获取节点的当前子节点。我有一个api:
nodes/ returns the root nodes in a simplified version
nodes/id returns the full info about node, with children and parent simplified
nodes/id/children returns the simplified version of the children of a specific node但是如何通过backbone获取特定节点的当前子节点呢?当我想要加载子对象而不是预加载子对象时,我希望能够发出呼叫。我正在尝试为请求保存服务器。因为有一个很大的树视图,意味着加载整个树是不安全的。
只要提出任何问题就可以澄清更多的问题。Thx在前面
发布于 2013-07-24 16:28:57
我发现我的api很奇怪。我有一个例子,我的jstree应该由Backbone支持,而不是由jstree ajax本身支持。因为我的观点依赖于主干,我希望他们能相互合作。
此修改已经完成,但它不在关系模型部分中。它在我的后端,在直接指向节点时为子节点服务,这有助于我正确地构建模型。
所以它可以工作,但是jstree不支持主干。
发布于 2013-07-05 03:54:01
您应该能够通过使用字符串文字作为相关模型来完成此操作:
relations:[
{
type: Backbone.HasMany,
key: "children",
relatedModel: 'MenuNode',
collectionType: NodeCollection,
reverseRelation: {
key: "parent"
}
}
]https://stackoverflow.com/questions/17465434
复制相似问题