javascript - 如何为对象数组提供 ng-options?

标签 javascript angularjs

我的 json 在 Angular 选择标签中绑定(bind)时遇到问题。

JSON:

{
"List": [
    {
        "service": [
            "one"
        ],

        "id": [
            1
        ]
    },
    {
        "service": [
            "two"
        ],

        "id": [
           2
        ]
    }
    ]
}

这里我需要在 select 标签中绑定(bind)服务属性。我正在获取对象数组。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您得到一个数组,因为主列表中的每个项目都有一个 service属性(property)和id属性作为数组,因此为了填充选项列表,您需要使用以下内容:

ng-options="item.id[0] as item.service[0] for item in items.List"

我使用 $scope.items 将项目列表保存在 Controller 中我正在使用 ... in items.List 引用它在ngOptions指令。

每个<option>的值和 <select> 中的标题/标签使用 item.id[0] as item.service[0] for item 设置元素- 它选择每个 service 中的第一个元素和 id每个选项的数组。

这是一个工作示例:

angular.module('app', []).controller('ctrl', function($scope) {
    $scope.items = {"List": [
      {
        "service": [
            "one"
        ],

        "id": [
            1
        ]
      },
      {
        "service": [
            "two"
        ],

        "id": [
           2
        ]
      }
    ]};
    
    $scope.selectionChanged = function(value) {
      console.log(value);
    };
    
    // You can also define a pre-selected option by uncommenting the following line 
    // $scope.selected = 2;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <select ng-options="item.id[0] as item.service[0] for item in items.List" ng-model="selected" ng-change="selectionChanged(selected)"></select>
  
  <div ng-if="selected">
    Selected: <pre ng-bind="selected"></pre>
  </div>
</div>

关于javascript - 如何为对象数组提供 ng-options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55183059/

相关文章:

javascript - Electron的WebView.loadURL触发重新加载

Javascript onClick 改变div的背景图片

css - 将 "required"与 Angular JS 一起使用时,选择提交时的选项样式更改

javascript - Laravel 和 Angular js 文件上传

javascript - AngularJS 查询参数

javascript - 为什么当我按“开始”时不显示 console.log 消息?

javascript - 如何在不重新加载页面的情况下更改 url?

javascript - Ajax 调用未返回预期值

javascript - Angular 的替代方案在旧版本中嵌入后备内容

javascript - 平均堆栈应用: can't hide content using directive "ng-hide' "