angular select如何获取选中的数据列

<p>选项,{{selected}}</p>
<select ng-model="selected" ng-options="item.id as item.name for item in selectData">
        <option value="">-- 请选择 --</option>
</select>
$scope.selected = 1004;
$scope.selectData = [
    {id:1001,name:"零零一"},
    {id:1002,name:"零零二"},
    {id:1003,name:"零零三"},
    {id:1004,name:"零零四"}
];

如何获取选中的那一列数据。selected 只能获取到id值,但是我想要这一列的值。并且不干扰通过id值默认选中某一项。比如说我通过id:1004选中了这一项,我不单单要id值还要这一列的所有中。

阅读 6.6k
2 个回答

你不觉得你的需求有矛盾吗,给ng-model赋值id值,又期望ng-model的值是对象?

如果想要最终ng-model是一列,但是你只能给出选中某项的id值(应该是你在页面编辑中遇到的),可以通过给定id先过滤出对应项,并赋值给selected。且ng-options表达式需要改成 item as item.name for item in selectData track by item.id

$scope.selectData = [
  {id:1001,name:"零零一"},
  {id:1002,name:"零零二"},
  {id:1003,name:"零零三"},
  {id:1004,name:"零零四"}
];
$scope.selected = $scope.selectData.filter(item => item.id === 1004)[0];
<select ng-model="selected" ng-options="item as item.name for item in selectData track by item.id">
    <option value="">-- 请选择 --</option>
</select>
<p>选项,{{selected}}</p>
<select ng-model="selected" ng-options="item.name for item in selectData">
        <option value="">-- 请选择 --</option>
</select>
$scope.selected = $scope.selectData[3];
$scope.selectData = [
    {id:1001,name:"零零一"},
    {id:1002,name:"零零二"},
    {id:1003,name:"零零三"},
    {id:1004,name:"零零四"}
];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进