Как вставить данные в SC.SourceListView

Я хочу отправить некоторые проанализированные данные JSON из моего контроллера в SC.SourceListView (Витрина Sproutcore). Я использую SC.TreeController и установите проанализированный JSON как контент:

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

Недвижимость treeItemChild устанавливается в соответствии со свойством в объектах и ​​ведет к дочерним объектам.

Содержание в SC.TreeController содержит несколько объектов (данные JSON), основанных на следующей структуре (это пример одного из тех объектов, которые я хочу вставить в древовидное представление):

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 собственность в моем 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)

1 ответ

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, вам может потребоваться, чтобы ваши родительские объекты (те, которые имеют детей) имели group атрибут установлен в true. Пожалуйста, дайте нам знать, если это помогает или нет!

Другие вопросы по тегам