Your data object is an object of objects, not an array of objects.
Therefore, orderBy will not work, since it is only compatible with arrays.
I updated your data object to make it work:
$scope.data = [ { "id": "78961", "name": "item 1", "type": "blind", "order":{allListPosition:"093",catListPosition: "009"}, "data": { "status": "up", "percent": 80 }, "longPress": { "item": "78966", "active": true } }, { "id": "78962", "name": "item 2", "type": "blind", "order":{allListPosition:"008",catListPosition: "059"}, "data": { "status": "stop", "percent": 20 }, "longPress": { "item": "78966", "active": true } }, { "id": "78963", "name": "item 3", "type": "coolmaster", "order":{allListPosition:"053",catListPosition: "001"}, "data": { "status": 1, "temp": 16, "point": 25, "mode": "cool", "fan": 3 }, "longPress": { "item": "78966", "active": false } }];
And in HTML:
<div ng-repeat="item in data | orderBy:'order.allListPosition'"> <div>{{item.name}} - {{item.order}}</div> </div>
Plunker