1

我尝试在 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 中的文本信息?

4

2 回答 2

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();
  } 
});
于 2012-12-12T15:03:06.443 回答
0

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

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

  imageView: ...
  labelView: SC.LabelView.design({
    valueBinding: ".parentView.content.textInfo"
  })
于 2012-12-05T08:52:33.050 回答