Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 月亮。月亮上的数据列表。enyojs中的手风琴_Javascript_Webos_Enyo - Fatal编程技术网

Javascript 月亮。月亮上的数据列表。enyojs中的手风琴

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":

我有以下数据:

.... [ {"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(对象); 归还物品; .... ... ....
但是,请帮助我,仅渲染类别,而不是我的子类别。

问题是,您不能使用混合来将组件类型混合在一起。您可以使用一些非常特定的混合来将功能添加到现有类型中。查看此混合列表:

此外,您还可以替换所有这些代码:

        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);