Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Spine.js中为这种关系建模_Javascript_Model View Controller_Spine.js - Fatal编程技术网

Javascript 如何在Spine.js中为这种关系建模

Javascript 如何在Spine.js中为这种关系建模,javascript,model-view-controller,spine.js,Javascript,Model View Controller,Spine.js,在我的应用程序中,我需要对对象之间的关系建模,这种关系非常类似于文件系统 我有图像,视频和收藏 集合可以包含所有这三种类型的对象。 虽然图像和视频可以是多个集合的一部分,但集合只能包含在一(1)个集合中 在脊柱中建立这种关系的最佳方式是什么 我想做的是从一个通用的模型定义,比方说资产,把所有的东西都变成子类 所以一切都是一种资产,我可以在该模型上实现类和实例方法,所有子类模型定义都继承这些方法 我在使用这种方法时遇到的问题是,我需要/希望将这种关系置于资产之上 class Asset exten

在我的应用程序中,我需要对对象之间的关系建模,这种关系非常类似于文件系统

我有
图像
视频
收藏

集合可以包含所有这三种类型的对象。 虽然图像和视频可以是多个集合的一部分,但集合只能包含在一(1)个集合中

在脊柱中建立这种关系的最佳方式是什么

我想做的是从一个通用的模型定义,比方说资产,把所有的东西都变成子类 所以一切都是一种资产,我可以在该模型上实现类和实例方法,所有子类模型定义都继承这些方法

我在使用这种方法时遇到的问题是,我需要/希望将这种关系置于资产之上

class Asset extends Spine.Model @configure 'Asset', 'title', 'description' @belongsTo 'collection', Collection 类资产扩展Spine.Model @配置“资产”、“标题”、“说明” @属于“收藏”,收藏 此外,如果我有Collection子类Asset和Asset设置了对Collection的引用,我不确定这是否真的有效。。。 这里的问题是,belongsTo是单向关系,我只需要对集合使用它 因此,正确的方法是让
@拥有多个“集合”,集合
,并确保没有集合将多个对象设置到此属性


另一个问题是:我可以使用Asset.find(id)来获取属于Asset子类的所有对象吗

我不太确定你的问题是什么,只是想试试你的上述结构是否有效

您所描述的被称为“复合设计模式”()其中,
Collection
是“复合”,而
Image
Video
都是“叶子”

关于您的
@hasMany
问题,除了您已经定义的
资产
代码之外,您是否希望在您的
集合
子类上使用以下内容而不是
@hasMany“collections”,Collection

@有许多“资产”,资产

因为你可以在树上来回移动

同样,我真的不确定这种递归遍历在Spine中是否有效(尽管我广泛使用Spine,但从未尝试过)

嗯一些,,
Geert Jan

我不太确定你的问题是什么,只是尝试一下你的上述结构是否有效

您所描述的被称为“复合设计模式”()其中,
Collection
是“复合”,而
Image
Video
都是“叶子”

关于您的
@hasMany
问题,除了您已经定义的
资产
代码之外,您是否希望在您的
集合
子类上使用以下内容而不是
@hasMany“collections”,Collection

@有许多“资产”,资产

因为你可以在树上来回移动

同样,我真的不确定这种递归遍历在Spine中是否有效(尽管我广泛使用Spine,但从未尝试过)

嗯一些,,
Geert Jan

是的,复合模式正是我试图实现的。我在子类化/扩展资产模型(
Spine.model
)时遇到了问题,因为它没有通过简单的子类化来带来所有属性。。。我必须在模型定义中执行
@extend Asset
。我遇到的另一个问题是,我试图将关系(belongsTo或hasMany)放到资产上的集合中,但在这里,我遇到了另一个无法解决的错误(可能是因为集合是asset的一个子类,但我不知道。不确定您对
@hasMany'assets',asset
的建议是什么,您的意思是我应该为资产和集合实现一个hasMany?好吧,构建复合模式(同样,您必须亲自检查一下这种递归的东西在Spine中是否有效)您将拥有:1)
@属于
资产上的“收藏”、“收藏”
,2)
@拥有许多“资产”,资产
资产上的
。这些定义应该放在一起,因为它们构成了
资产
集合
之间双向关系的两面。这使得
集合
可以拥有许多
资产
,其中包括
图像
视频
,但也可以使用
集合
,允许任意深度嵌套的集合,例如:
col1>colb>colc>videoA
ok。问题还在于,视频和图像可以是部分或多个集合,而不仅仅是一个集合,但这不是问题所在。我会想办法的。非常感谢。是的,复合模式就是我想要实现的。我在子类化/扩展资产模型(
Spine.model
)时遇到了问题,因为它没有通过简单的子类化来带来所有属性。。。我必须在模型定义中执行
@extend Asset
。我遇到的另一个问题是,我试图将关系(belongsTo或hasMany)放到资产上的集合中,但在这里,我遇到了另一个无法解决的错误(可能是因为集合是asset的一个子类,但我不知道。不确定您对
@hasMany'assets',asset
的建议是什么,您的意思是我应该为资产和集合实现一个hasMany?好吧,构建复合模式(同样,您必须亲自检查一下这种递归的东西在Spine中是否有效)您将拥有:1)
@属于
资产上的“收藏”、“收藏”
,2)
@拥有许多“资产”,资产
资产上的
。这些定义应该放在一起,因为它们构成了
资产
集合
之间双向关系的两面。这使得
集合
可以拥有许多
资产
,其中包括
图像
视频
,但也可以使用
集合
,允许任意深度嵌套的集合,例如:
col1>colb>colc>videoA
ok。还有一件事是我和一个视频