Javascript 月亮。月亮上的数据列表。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"} ]} ] .... .... [ {“id_类别”:1, “名称”:“01类”, 子类别:[ {“id_sub”:1,“name”:“suba 1”}, {“id_sub”:2,“name”:“subaa 2”} ]}, {“id_类别”:2 ,“名称”:“02类” ,子类别:[ {“id_sub”:1,“name”:“sub 1”}, {“id_sub”:2,“name”:“sub 2”} ]} ] .... 我想把它放在月亮上。手风琴 我有以下代码: 首先,我的组件: .... 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"} ] }); .... .... 恩约({ 名称:“myapp.ResultList”, 种类:“月亮数据列表”, selectionProperty:“已选定”, mixins:[“组”], 创建:函数(){ 这是继承的(论点); this.addClass(this.orientation); } }); 恩约({ 种类:“月亮,手风琴”, 名称:“myapp.ResultAccordion”, 内容:“, mixins:[“moon.DataList”], 绑定:[ {从:“.model.name”到:“.content”} ], 子类别:[], 创建:函数(){ 这是继承的(论点); }, modelChanged:function(){ 这是继承的(论点); 如果(!this.model){ 返回; } this.model.set(“项”,this); this.subcategories=this.model.attributes.subcategories; this.controller=new enyo.Collection([]); var对象=[]; 对于(此子类别中的var sc){ var m=新的myapp.subcategory模型(此.subcategories[sc]); 物体。推(m); } this.controller.add(对象); 此参数已调整大小(); } }); 恩约({ 名称:“myapp.ResultacCordinItem”, 绑定:[ {从:“.model.name”到:“.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" }] }] .... .... .... 恩约({ 名称:“myapp.PartialPanel”, 课程:“月亮恩约不可选择主视图恩约适合”, 种类:“月亮,面板”, .... 组成部分:[{ 种类:“myapp.ResultList”, 样式:“位置:继承!重要;”, 菲特:没错, 控制器:“.app.$.categoryCollection”, 组成部分:[{ 种类:“myapp.ResultAccordion”, onSpotlightRight:“onFocusCategoryRight”, 组成部分:[{ 种类:“myapp.ResultacCordinite” }] }] .... .... 在我的控制器中,设置我的数据: .... 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; .... ... .... .... setdata:function(){ var测试={ “计数”:1, “下一个”:空, “先前”:空, “结果”:[ {“id_category”:1,“name”:“category 01”, 子类别:[ {“id_sub”:1,“name”:“suba 1”}, {“id_sub”:2,“name”:“subaa 2”} ] }, {“id_category”:2,“name”:“category 02”, 子类别:[ {“id_sub”:1,“name”:“sub 1”}, {“id_sub”:2,“name”:“sub 2”} ] } ]}; var模型=测试结果; this.next=test.next; this.previous=test.previous; this.count=test.count; var对象=[]; 对于(模型中的var p){ console.log(models[p]); var m=新的myapp.CategoryModel(模型[p]); 物体。推(m); } this.app.controllers.categoryCollection.add(对象); 归还物品; .... ... ....Javascript 月亮。月亮上的数据列表。enyojs中的手风琴,javascript,webos,enyo,Javascript,Webos,Enyo,我有以下数据: .... [ {"id_category": 1, "name": "Category 01", subcategories:[ {"id_sub":1, "name":"suba 1"}, {"id_sub":2, "name":"subaa 2"} ]}, {"id_category": 2 ,"name":
但是,请帮助我,仅渲染类别,而不是我的子类别。问题是,您不能使用混合来将组件类型混合在一起。您可以使用一些非常特定的混合来将功能添加到现有类型中。查看此混合列表: 此外,您还可以替换所有这些代码:
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);
与:
(假设您使用的是2.5.1。如果是这样,您还可以在绑定上删除前导点。)本示例中的内容太多,缺少了一些内容(例如,CategoryModel。我不确定Mixin是否打算这样使用。您可以创建一个带有完整示例的JSFIDLE吗?
this.controller = new enyo.Collection({model: "myapp.SubCategoryModel"});
this.controller.add(this.subcategories);