首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >与ng-options中的硬编码json相比,解析动态json时出错

与ng-options中的硬编码json相比,解析动态json时出错
EN

Stack Overflow用户
提问于 2018-08-27 02:07:38
回答 1查看 48关注 0票数 1

我有一个列表框,并且我正在绑定一个控制器中的项目列表。

代码语言:javascript
复制
$scope.AvailableListItems = [
    [{Id:1,SupplierName: 'john.banks'},
    {Id: 2,SupplierName: 'jim.chevy'}, 
    {Id: 3,SupplierName: 'ralph.stocks'}]
];

这是硬编码的json。当我用下面的html尝试它时,它工作得非常好。

代码语言:javascript
复制
<select multiple id="availabelist" size="10" style="width:100%" ng-change="OnAvailableChange()" ng-model="SelectedAvailItems" ng-options="i as i.email for i in AvailableListItems[selectFaIndex]| filter:availablequery"></select>

但是,当我试图动态生成相同的东西时,它根本不起作用。获取空白列表框。代码如下所示。

代码语言:javascript
复制
 var getSuppliers = function () {  
            var tempArray = [];
            var lstsuppliers = CRUDService.getApiOutput(getSuppliersApiRoute);
            lstsuppliers.then(
                function (response) {
                    debugger;
                    $scope.supplierList = response.data;
                    for (var i = 0; i < $scope.supplierList.length; i++) {
                        arr = {};
                        arr["Id"] = $scope.supplierList[i].supplierId;
                        arr["SupplierName"] = $scope.supplierList[i].supplierName;
                        tempArray.push(arr);
                    }
                    $scope.AvailableListItems = tempArray;
                    console.log(JSON.stringify($scope.AvailableListItems));
                },
                function (error) {
                    console.log("Error: " + error);
                });
}

请帮我找出代码中的问题。

Working Plunk link

我的响应数据是这样的:基于Claies更新

代码语言:javascript
复制
[{"Id":1,"SupplierName":"ACECO PRECISION MANUFACTURING"},{"Id":2,"SupplierName":"Pentagon EMS Corporation"},{"Id":3,"SupplierName":"QUANTUMCLEAN"},{"Id":4,"SupplierName":"MODERN CERAMICS"},{"Id":5,"SupplierName":"NXEDGE INC"}]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-27 10:26:25

在一起休息了几个小时后,终于找到了解决办法。我已经将硬编码和动态值放在了console中。我发现了下面的区别。

我修改过了

代码语言:javascript
复制
$scope.AvailableListItems = tempArray;

代码语言:javascript
复制
$scope.AvailableListItems.push(tempArray);

在第14行,它起作用了。在我更改代码后,输出如下所示

特别感谢@Tomas和@Claies。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52028994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档