如何将对象数据转换为数组以与AngularJS中的bs-typeahead一起使用?

时间:2014-03-10 22:06:52

标签: angularjs bootstrap-typeahead

我的数据如下:

[
            {
                "_id": "531dbf8b9b9fc50000a8d611",
                "active": true,
                "client": {
                    "_id": "531dbf8b9b9fc50000a8d60e",
                    "name": "TR"
                },
                "company_id": "531dbf8b9b9fc50000a8d60c",
                "createdOn": "2014-03-10T13:35:07.313Z",
                "description": "Gentle Action Application Pads",
                "dimensions": {
                    "weight": 22.4
                },
                "lot": [
                ],
                "meta": {
                    "category": "Face",
                    "msrp": 7.75
                },
                "sku": "11002",
                "unit_of_measure": "each",
                "updatedOn": "2014-03-10T13:35:07.314Z"
            },
            {
                "_id": "531dbf8b9b9fc50000a8d612",
                "active": true,
                "client": {
                    "_id": "531dbf8b9b9fc50000a8d60e",
                    "name": "TR"
                },
                "company_id": "531dbf8b9b9fc50000a8d60c",
                "createdOn": "2014-03-10T13:35:07.317Z",
                "description": "Skin Renewal System - Enriched (CA)",
                "dimensions": {
                    "weight": 22.4
                },
                "lot": [
                ],
                "meta": {
                    "category": "Face",
                    "msrp": 321.6
                },
                "sku": "11700CA",
                "unit_of_measure": "each",
                "updatedOn": "2014-03-10T13:35:07.318Z"
            }
        ]

在我看来,我有:

 <input type="text" ng-model="receivingSku" placeholder="Locations loaded via $http" typeahead="sku for sku in getSku($viewValue) | filter:$viewValue" typeahead-on-select="selectedSku()" class="form-control">

我需要每个项目的sku字段在typeahead中。我怎么能做到这一点?

目前,我收到一个错误: Error: matches is undefined

1 个答案:

答案 0 :(得分:1)

您可以遍历原始数组并创建一个仅包含SKU的数组:

var skus = origArray.map(function(e) {
  return e.sku;
});

新数组可用于预先输入。

PS - 我对typeahead不太熟悉。如果typeahead能够窥视对象,则不需要这样做。