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

回答ありがとうございます。

昨日遊んでいたときに、私はこの解決策に行き着きました。

2つのプロパティ(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 に答える