Javascript 角度:获取下拉项的索引

Javascript 角度:获取下拉项的索引,javascript,angularjs,Javascript,Angularjs,我认为有以下几点 <div> <select ng-model="obj.arr[otherObj.variable]" ng-change="otherObj.variable=SOMETHING"> <option ng-repeat="label in obj.arrs">{{label}}</option> </select> </div> 问题是,我不知道那是什么东西。我这样做对吗

我认为有以下几点

<div>
    <select ng-model="obj.arr[otherObj.variable]" ng-change="otherObj.variable=SOMETHING">
        <option ng-repeat="label in obj.arrs">{{label}}</option>
    </select>
</div>
问题是,我不知道那是什么东西。我这样做对吗

编辑

我的要求是

  • 默认情况下,在下拉列表中选择顶部选项
  • 根据otherObj.variable的值,在数组中选择适当的项(这是由一些外部代码设置的,因此如果我来到设置了此值的页面,那么我希望选择正确的选项)
  • 如果我更改下拉列表中的值,请确保otherObj.variable已更新
    请尝试使用下面的代码

    <select ng-model="obj.arr[otherObj.variable]" ng-change="otherObj.variable=key" ng-options="key as value for (key , value) in obj.arrs"></select>
    

    请尝试使用以下代码

    <select ng-model="obj.arr[otherObj.variable]" ng-change="otherObj.variable=key" ng-options="key as value for (key , value) in obj.arrs"></select>
    
    
    
    angular.module('selects.demo',[])
    .controller('SelectCtrl',函数($scope){
    $scope.values=[{
    id:1,
    标签:“阿拉贝尔”,
    }, {
    id:2,
    标签:“bLabel”,
    }];
    $scope.selectedval=$scope.values[0];
    });
    
    
    使用不带“选择为”的ngOptions:

    {{selectedval}}

    使用带有select as语句的ngOptions:(这将仅返回模型中的id)

    {{selectedval2}}

    angular.module('selects.demo',[])
    .controller('SelectCtrl',函数($scope){
    $scope.values=[{
    id:1,
    标签:“阿拉贝尔”,
    }, {
    id:2,
    标签:“bLabel”,
    }];
    $scope.selectedval=$scope.values[0];
    });
    
    
    使用不带“选择为”的ngOptions:

    {{selectedval}}

    使用带有select as语句的ngOptions:(这将仅返回模型中的id)

    {{selectedval2}}



    你能提供JSFIDLE链接吗。您在与选择关联的模型中具有选定值。使用而不是ngRepeat在选项元素上自动生成值。是否确实要这样做?您所做的基本上是
    obj.arr[otherObj.variable]=obj.arrs[selected index]
    @zeroplagl这些是要求1。默认情况下,在下拉列表中选择顶部选项2。根据otherObj.variable的值在数组中选择适当的项(这是由一些外部代码设置的,因此如果我来到设置了此值的页面,那么我希望选择正确的选项)。如果我更改下拉列表中的值,请确保otherObj.variable已更新。使用索引是愚蠢的-这通常意味着如果您放置“label in obj.arrs | cleverFilter”,它将破坏您的代码。您是否可以提供JSFIDLE linkNot。您在与选择关联的模型中具有选定值。使用而不是ngRepeat在选项元素上自动生成值。是否确实要这样做?您所做的基本上是
    obj.arr[otherObj.variable]=obj.arrs[selected index]
    @zeroplagl这些是要求1。默认情况下,在下拉列表中选择顶部选项2。根据otherObj.variable的值在数组中选择适当的项(这是由一些外部代码设置的,因此如果我来到设置了此值的页面,那么我希望选择正确的选项)。如果我更改下拉列表中的值,请确保otherObj.variable已更新。使用索引是愚蠢的-这通常意味着如果您放置“label in obj.arrs | cleverFilter”,它将破坏您的代码。然后我将编写什么?已更新。有帮助吗?我刚读了你的最新评论。如果要将值设置为第一个选项,可以通过以下方式执行:
    $scope.selectedval=$scope.values[0]
    在您的控制器中,selectedValue应该是整数id还是由id和标签组成的对象?我添加了一个小演示,以便您可以看到使用带有和不带select as的ngOptions之间的区别。然后我会写什么?已更新。有帮助吗?我刚读了你的最新评论。如果要将值设置为第一个选项,可以通过以下方式执行:
    $scope.selectedval=$scope.values[0]
    在你的控制器中,selectedValue应该是整数id还是由id和标签组成的对象?我添加了一个小演示,这样你就可以看到使用带有和不带有select as.Yes的ngOptions之间的区别。加1表示轻松是的。加1表示努力