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>
问题是,我不知道那是什么东西。我这样做对吗
编辑
我的要求是
请尝试使用下面的代码
<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表示努力