Javascript 角度1.x ng选项从值加载下拉列表
这是我的plunker,我的html是这样的Javascript 角度1.x ng选项从值加载下拉列表,javascript,angularjs,Javascript,Angularjs,这是我的plunker,我的html是这样的 <select ng-model="dropdown" ng-options="option.description for option in list" ng-change="hmm()"></select> $scope.list = {"description":"jhello","value":4},"description":"bello","value":5}]; $scope.dropdown = 5;
<select ng-model="dropdown" ng-options="option.description for option in list" ng-change="hmm()"></select>
$scope.list = {"description":"jhello","value":4},"description":"bello","value":5}];
$scope.dropdown = 5;
我有一个ng model=“dropdown”
我要做的是将模型的值设置为所选选项。因此,如果我将dropdown设置为5,那么将选择
$scope.list[1]
。我知道我可以很容易地调用索引,因此$scope.dropdown=$scope.list[1]
等。但是,当我从数据库中拉出数据进行编辑以映射到此选项时,这需要额外的映射。然后进行额外的映射,以便在尝试保存时仅将5值存储到数据库中(即valueToSave=$scope.dropdown.value)。如果我的模型或值能够自动设置正确的选项并自动准备好保存,那就太好了。当你有30个左右的下拉列表,有人点击编辑额外的映射来设置下拉列表并再次保存时,这真是累加。如何使用$scope.dropdown=5
设置下拉选项,并确保将下拉更新$scope.dropdown
更改为正确的值,以便保存?只需按如下方式更新ng选项ng options=“option.value as option.description for option in list”
像这样
<select class="dropdown-list form-control" name="UnitsOfLengthDefault" ng-model="dropdown" ng-options="option.value as option.description for option in list" ng-change="hmm()"></select>
我认为映射是最好的方法 使用此功能,您可以轻松找到并分配正确的值
function findIndexInData(data, property, value) {
var result = -1;
data.some(function (item, i) {
if (item[property] === value) {
result = i;
return true;
}
});
return result;
}
所以你可以用这个:
$scope.list[ findIndexInData( $scope.list, 'value', 5 ) ];