Javascript 如何在ng中对数据进行排序,并将嵌套对象作为JSON数据在angular js中重复

Javascript 如何在ng中对数据进行排序,并将嵌套对象作为JSON数据在angular js中重复,javascript,angularjs,sorting,Javascript,Angularjs,Sorting,我想在角度视图中显示对象属性的数组。以下是对象 $scope._Json = { "foo": { "ItemDimension1": { "Item": "item1", "ItemIndex": 1, "SelectedItems": [{ "Code": "Code1" }] } }, "bar": {

我想在角度视图中显示对象属性的数组。以下是对象

$scope._Json = {
    "foo": {
        "ItemDimension1": {
            "Item": "item1",
            "ItemIndex": 1,
            "SelectedItems": [{

                "Code": "Code1" 
            }]
        }
    },
    "bar": {
        "ItemDimension2": {
            "Item": "item2",
             "ItemIndex": 3,
            "SelectedItems": [{

                "Code": "code2" 
            }]
        },
        "ItemDimension3": {
            "Item": "item3",
            "ItemIndex": 2,
            "SelectedItems": [{

                "Code": "Code3" 
            }]
        }
    },
    "Lorem": {
        "ItemDimension4": {
           "Item": "item4",
            "ItemIndex": 5,
            "SelectedItems": [{

                "Code": "Code4" 
            }]
        }
    }
  };
我想在视图中显示这一点,就像

项目1-1

项目3-2

项目2-3

项目4-5

但它显示出

项目4-5

项目2-3

项目3-2

项目1-1

视图模板

<label ng-repeat="(catagory, items) in _Json">
          <li ng-repeat="(name, itemslist) in items | orderBy:'itemslist.ItemIndex'">

              <strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong> 

            </li>
       </label>

  • {{itemslist.Item}-{{itemslist.itemsindex}
  • 如何使用ItemIndex订购此产品

    这是正确的方法吗?还是我想改变什么

    关于,我尝试了orderByobject,但没有成功

    检查这个Plunker源


    这应该可以做到:

    <label ng-repeat="(catagory, items) in _Json">
       <li ng-repeat="(name, itemslist) in items | orderBy:'itemslist.ItemIndex':true">
          <strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong> 
       </li>
    </label>
    
    
    
  • {{itemslist.Item}-{{itemslist.itemsindex}

  • 请参见您需要
    ng repeat
    的参数作为实际数组,以便内置orderBy工作。见这个问题:

    我会插入下划线.js(或lodash)并预先转换您的数据

    看到你的最新小提琴了吗

    将映射添加到您的控制器(注意,为了简单起见,这是顶级映射,对于两级映射,请参考更新的fiddle)

    并将标记更改为(同样,为了简单起见,此处仅为顶级,两级更新请参考更新的plnkr):

    
    
  • {{itemslist.Item}-{{itemslist.itemsindex}

  • 您是否尝试过
    :在
    orderBy
    过滤器中反转
    ?@Brett我尝试过,但没有成功!请检查此plunker链接,您的plunker示例根本不适用于我。@Brett适用于我。item4-5 item2-3 item3-2 item1-1作为结果,我们的JSON数据不是一个数组,但是,你却把它当作一个数组来对待。糟糕的是,我没有注意到。你应该检查,或者,你应该能够让它工作。
    
    $scope._Json = _.map($scope._Json, function( v, k) { 
        return { key: k, value: v}      
    })
    
    <label ng-repeat="cat in _Json">
          <li ng-repeat="(name, itemslist) in cat.value | orderBy:'itemslist.ItemIndex'">        
              <strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong>               
          </li>
    </label>