从子视图访问父视图中的属性

时间:2011-03-08 08:29:10

标签: javascript sproutcore

所以我试图在我的应用程序中使splitview更可重用,但我现在卡住了,试图使两个内容视图中的绑定易于设置。

我的topLeftView包含一个SC.ScrollView,它有一个SC.ListView作为其contentView。我希望能够在使用splitview时设置ListView的contentBinding,selectionBinding,contentValueKey和contentCheckboxKey属性,因此在ListView使用的splitview本身中有一些属性。这有什么意义吗?

所以这就是我所拥有的:

SomeApp.MasterDetailView = SC.SplitView.extend({
...
masterViewControllerContent: 'SomeApp.someController.arrangedObjects',
masterViewControllerSelection: 'SomeApp.someController.selection',
masterViewControllerValueKey: "someKey",
masterViewControllerCheckboxKey: undefined,

topLeftView: SC.ScrollView.design({
   ...
            contentView: SC.ListView.design({
                contentBinding: masterViewControllerContent,
                selectionBinding: masterViewControllerSelection, 
                contentValueKey: masterViewControllerValueKey, 
                contentCheckboxKey: masterViewControllerCheckboxKey, 
        })
    }),

bottomRightView: SomeApp.DetailsView.design({
    ...
})

})

引用masterViewControllerContent会出现错误,但在引用masterViewControllerContent时,我似乎无法找到转到splitView的范围。我是以错误的方式解决问题的吗?有关如何/可以做到这一点的任何建议?

1 个答案:

答案 0 :(得分:0)

每个视图都有一个'parentView'属性。所以在ListView中你可以绑定到

'.parentView.parentView.masterViewControllerContent'

如果要创建新视图(App.MasterDetailView),则在主要详细信息上设置内容,并将子视图绑定到该内容即可。

如果你只有一个带有Scroll和List的SplitView(即SplitView不是你要增加的特殊视图),我会将列表直接绑定到它的内容。