0

SC.SourceListView解析された JSON データをコントローラーから(Sproutcore Showcase)にプッシュしたいと考えています。を使用しSC.TreeController、解析された JSON をコンテンツとして設定します。

MyApp.thisController = SC.TreeController.create({
    treeItemChildrenKey: 'children',
    content: []
});

プロパティtreeItemChildは、オブジェクトのプロパティに応じて設定され、子オブジェクトにつながります。

のコンテンツにはSC.TreeController、次の構造に基づくいくつかのオブジェクト (JSON データ) が含まれています (これは、ツリー ビューにプッシュしたいオブジェクトの 1 つの例です)。

children: Array[3]
    0: Object
        children: Array[1]
        data: "Boogie"
        metadata: Object
        __proto__: Object
    1: Object
    2: Object
data: "Blues"
metadata: Object
__proto__: Object

dataプロパティを myに入れたいSC.SourceListViewので、読み取ります。

Blues
    Boogie
    ...
    ...

このコンテンツは にバインドされ、画面SC.SourceListViewにプロパティが表示されます。data

viewname: SC.SourceListView.extend({
    contentBinding: SC.Binding.oneWay('MyApp.thisController.arrangedObjects'),
    exampleView: SC.ListItemView.extend({
        contentValueKey: 'data'
    }),
    groupExampleView: SC.ListItemView.extend({
        contentValueKey: 'data'
    })
})

dataこれにより、さまざまなオブジェクトの最上層を取得できます。ただし、より深いレイヤーのオブジェクトで構成されるドロップダウンはありません。このビューを適切に設定するにはどうすればよいですか? SC.SourceListViewとはどう違いSC.SourceListGroupViewますか?

(Google グループ リンク)

4

1 に答える 1

0

SC.SourceListGroupView、 内でグループをレンダリングするために使用される実際のリスト項目ビューSC.SourceListViewです。現在、あなたが使用している

groupExampleView: SC.ListItemView.extend()

ただし、SC.ListItemViewデフォルトでは、自分自身をグループとしてレンダリングする方法を認識していないため、おそらくこれを次のように変更する必要があります

groupExampleView: SC.SourceListGroupView.extend()

その後、ツリーが表示されます。

最後に(そして、これは質問の単なるタイプミスだと思います):あなたは持っています

MyApp.thisController.anrrangedObjects

私はあなたが本当に意味したと確信しています

MyApp.thisController.arrangedObjects

SC.SourceListGroupViewに変更しても問題が解決しない場合は、コメントを追加するか、質問を更新してください。それでも助けが必要な場合は、レンダリングしようとしている JSON 構造を確認することも役に立ちます :-)

編集:わかりました。ドキュメントが見つからないように見えるので、これについて 100% 確信があるわけではありませんが、SproutCore Showcaseによると、親オブジェクト (子を持つオブジェクト) にgroup属性を true に設定します。それが役立つかどうかをお知らせください!

于 2012-08-22T14:10:51.780 に答える