У меня есть эти данные:moon.DataList в moon.Accordion в enyojs
.... [ {"id_category": 1, "name": "Category 01", subcategories:[ {"id_sub":1, "name":"suba 1"}, {"id_sub":2, "name":"subaa 2"} ]}, {"id_category": 2 ,"name": "Category 02" ,subcategories:[ {"id_sub":1, "name":"sub 1"}, {"id_sub":2, "name":"sub 2"} ]} ] ....
, и я хочу, чтобы установить его в moon.Accordion у меня есть этот код: Первые мои компоненты:
.... enyo.kind({ name: "myapp.ResultList", kind: "moon.DataList", selectionProperty: "selected", mixins: ["Group"], create: function() { this.inherited(arguments); this.addClass(this.orientation); } }); enyo.kind({ kind: "moon.Accordion", name: "myapp.ResultAccordion", content: "", mixins : ["moon.DataList"], bindings: [ {from: ".model.name", to:".content"} ], subcategories:[], create: function() { this.inherited(arguments); }, modelChanged: function() { this.inherited(arguments); if (!this.model) { return; } this.model.set("item", this); this.subcategories = this.model.attributes.subcategories; this.controller = new enyo.Collection([]); var objects=[]; for(var sc in this.subcategories){ var m = new myapp.SubCategoryModel(this.subcategories[sc]); objects.push(m); } this.controller.add(objects); this.resized(); } }); enyo.kind({ name: "myapp.ResultAccordionItem", bindings: [ {from: ".model.name", to:".content"} ] }); ....
затем в панели:
.... enyo.kind({ name: "myapp.PartialPanel", classes: "moon enyo-unselectable main-view enyo-fit", kind: "moon.Panels", .... components:[{ kind: "myapp.ResultList", style: "position: inherit !important;", fit: true, controller: ".app.$.categoryCollection", components: [{ kind: "myapp.ResultAccordion", onSpotlightRight:"onFocusCategoryRight", components:[{ kind: "myapp.ResultAccordionItem" }] }] .... ....
в мой контроллер, установить мои данные:
.... setdata: function(){ var test= { "count": 1, "next": null, "previous": null, "results": [ {"id_category": 1, "name": "Category 01", subcategories:[ {"id_sub":1, "name":"suba 1"}, {"id_sub":2, "name":"subaa 2"} ] }, {"id_category": 2,"name": "Category 02", subcategories:[ {"id_sub":1, "name":"sub 1"}, {"id_sub":2, "name":"sub 2"} ] } ]}; var models = test.results; this.next = test.next; this.previous = test.previous; this.count = test.count; var objects = []; for(var p in models){ console.log(models[p]); var m = new myapp.CategoryModel(models[p]); objects.push(m); } this.app.controllers.categoryCollection.add(objects); return objects; .... ... ....
Но только отрисуйте категории, а не мои подкатегории, пожалуйста, помогите мне.
В этом примере происходит слишком много, и некоторые вещи отсутствуют (например, CategoryModel. Я не уверен, что миксины были предназначены для можно использовать так. Можете ли вы создать jsfiddle с полным примером? – Pre101