javascript - Angular 下拉菜单和 ng-option 的最佳实践是什么

标签 javascript angularjs drop-down-menu ng-options

美好的一天,我在 AngularJS 上创建了一个下拉菜单。但它返回给我一个对象而不是项目{“deptName”:“IT”,“id”:“1”}。我只需要将 id 返回到我的表。 我需要对 ng-options=“department.departments 中的项目的 item.deptName”进行更改吗? 查看示例:

JS

angular.module('firstApp', [])

.controller('EmpController', function() {
    var vm = this;
    // define a list of items
    vm.employees = [{
        name: 'Alex',
        id: '2233',
        dept: 'IT'
    }, {
        name: 'Scott',
        id: '2244',
        dept: 'IT'
    }, {
        name: 'Joe',
        id: '2255',
        dept: 'IT'
    }];
})

.controller('DeptController', function() {
    var vm = this;
    vm.departments = [{
        deptName: 'IT',
        id: '1'
    }, {
        deptName: 'Finance',
        id: '2'
    }, {
        deptName: 'Marketing',
        id: '3'
    }];
});

HTML

<div class="jumbotron">


    <h1>The Selected is </h1>
    <h2>{{main.employeeData.dept}}</h2>

    <!-- form to add computer to the list -->
    <form class="form-inline" ng-controller="DeptController as department">
        <div class="form-group">
            <label class="col-sm-2 control-label">Dept menu</label>
            <div class="col-sm-6">
                <!--<select  required="true" ng-model="main.employeeData.dept" ng-options="item.deptName  for item in department.departments">-->
                <!--<option value="">Select Category</option>-->
                <!--</select>-->

                <select required="true" ng-model="main.employeeData.dept" ng-options="item.id as item.deptName for item in department.departments">
                    <option value="">Select Category</option>
                </select>
            </div>
        </div>

    </form>
</div>

</div>

最佳答案

您需要使用ng-optionsas,例如item.id as item.deptName。它将显示item。 deptName 下拉值并将 item.id 值分配给相应的选择 ng-model

标记

 <select required="true" ng-model="main.employeeData.dept" ng-options="item.id as item.deptName for item in department.departments">
      <option value="">Select Category</option>
 </select>

Working Plunkr这里

关于javascript - Angular 下拉菜单和 ng-option 的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30128681/

相关文章:

javascript - 如果另一个 div 具有特定文本,则隐藏 div

javascript - 为什么 DOM 包装器方法不一致地使用第一个元素和整个元素列表?

javascript - 如何使用requestAnimationFrame?

c# - 如何从下拉列表中管理 GridView 中显示的内容?

css - flexbox 下拉菜单,菜单故意重叠子菜单链接

html - 水平对齐选择中的选项?

javascript - Angular - Controller 中的图像加载事件

javascript - AngularJS 中的弹出窗口覆盖(模态)?

angularjs - 使用 Angular,如何将单击事件绑定(bind)到元素并在单击时向下和向上滑动同级元素?

javascript - 如何使用内置进度条获得工作按钮动画?