我应该如何绑定值以使CustomItemView中的labelView在listController中显示文本信息?

时间:2012-12-02 10:05:38

标签: sproutcore

我尝试在listView中设计自定义视图。 代码如下所示:

Myapp.listView=SC.ScrollView.design({
  layout: { centerX: 0, width:100, top: 70, bottom:36},
  contentView: SC.ListView.design({
    contentBinding: SC.Binding.oneWay('Myapp.listController'),
    rowHeight: 36,
    exampleView:Myapp.CustomItemView.design({

         })

  })
});



MyApp.CustomItemView = SC.View.design({
          childViews:['imageView','labelView'],

          imageView: ....,
          labelView:SC.LabelView.design({

   })

});

我的问题是: 我应该如何绑定值以使CustomItemView中的labelView在listController中显示文本信息?

2 个答案:

答案 0 :(得分:1)

感谢您的回答。

昨天玩游戏时,我最终得到了这个解决方案。

我制作了一个依赖于两个属性的通用视图(libelle =静态文本,valeur =动态文本)。然后我可以使用相同的模式创建多个视图,只需在所有实例中更改“valeurBinding”属性。无论如何,我不确定破解渲染功能是做事的好方法,但它现在有用。

MyFrameWork.LabelDataView = SC.View.extend
({
  libelle: '',
  valeur: '',
  render: function(context, firstTime) {

    context = context.begin('span').addClass('ldv-label').push(this.get('libelle') + ': ').end();
    context = context.begin('span').addClass('ldv-value').push(this.get('valeur')).end();

    sc_super();
  } 
});

答案 1 :(得分:0)

就像Ramesh所说,你的customItemView应该是这样的:

MyApp.CustomItemView = SC.View.design({
  childViews:['imageView','labelView'],

  imageView: ...
  labelView: SC.LabelView.design({
    valueBinding: ".parentView.content.textInfo"
  })