2011-03-08 51 views
0

所以我想在我的应用程序中使splitview有点重用,但现在我试图让两个内容视图中的绑定易于设置。从childViews访问父视图中的属性

我的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的范围。我是否以错误的方式解决问题?有关如何应该/可以完成的任何建议?

+0

你好,请你清楚地说明你的班级关系是什么? – katsuya 2011-03-08 09:24:18

+0

我不完全确定你是什么意思?这些类之间的关系是,它们被创建为SomeApp.MasterDetailView中的childViews ... – 2011-03-08 14:12:40

回答

0

每个视图都有一个'parentView'属性。所以在ListView,你可以如果要创建一个新的视图(App.MasterDetailView)则设置在主机的细节内容,并有了孩子的意见结合到该内容为确定结合

'.parentView.parentView.masterViewControllerContent' 

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

+0

思考它后我同意你关于不把它放在splitview .... =)谢谢... – 2011-03-08 20:52:50

+0

@jakob,凉。请注意,如果splitview由于某种原因确实需要内容,除了在ListView上定义绑定之外,您还可以在拆分视图*中定义绑定。这是关于绑定的伟大之处。当更新时,变化得到传播。 – hvgotcodes 2011-03-08 21:47:29

+0

@jakob,我误解了你对这个问题的意图,所以我澄清了我的答案。如果您要创建一个特殊的视图(MasterDetail),该视图需要在分割视图级别访问内容,那么可以绑定到父视图中。 – hvgotcodes 2011-03-09 16:21:56