遍历SC.ManyArrray以创建要附加到SproutCore中的另一个视图的自定义视图



我正试图弄清楚如何从数据存储中检索一组对象,将SC.ManyArray传递给控制器,然后让一个视图在arrangedObjects上迭代以创建自定义的SC.视图,我希望这些视图能够附加到已经附加到DOM的其他各种视图中。

我能找到的只是如何使用SproutCore预构建的ListView/CollectionView/TableView等来实现这一点的示例。但我需要将这些生成的自定义视图附加到其他视图中。

在另一个相关但独立的问题上,当我检查从调用MyApp.store.find()返回的对象时,dataHashes属性并不包括我包含的所有fixture。我不确定这是否是因为我还没有创建一个视图来调用数据,因为如果我使用控制台,我可以返回所有的fixture。

我还要补充一点,我正在检索的数据来自主记录中的toMany关系。我正在使用与SC.ArrayController内容的绑定检索SC.ManyArray,路径为MyApp.masterModel.relationProperty.

编辑:我的意思是说MyApp.masterModelController.rerelationProperty

任何见解都会很棒。我已经想了两天了,似乎在谷歌或SproutCore文档中找不到任何信息。

我已经想通了。。。

我最终要做的是创建一个SC.CollectionView,并将内容绑定到用于管理数据收集的SC.ArrayController。当我将此集合视图添加到childViews数组中时,它会自动获取与modelstoMany关系相关的fixture,并创建我创建的自定义视图,并将其设置为SC.CollectionView上的exampleView,存储dataHashes属性也会用这些对象更新。

在我创建的用于显示对象的自定义视图上,我重写了didAppendToDocument方法,获取了要将这些视图附加到的视图的容器视图的路径,并使用appendChild附加创建的自定义视图。

最后需要的是隐藏SC.CollectionView,所以我只将layout属性设置为{top:-1000,left:-1000,width:0,height:0}

我不能百分之百确定这是最好的方法,但它确实有效(至少对我来说)。

我很乐意听到任何其他的建议来实现这一点。

最新更新