我正在尝试使用localStorage
来记住用户的选择,并在下次登录时相应地设置所选选项。
select
选项正确填充,如下所示。
当索引为1或更高时,它可以正常工作,但每当选择第一个值时,默认情况下在下次重新加载时不会选择任何值。
我在下面说明了这一点:
我做错了什么?
HTML
<select name="ipSelect" data-ng-model="selectedOption">
<option ng-repeat="ip in adapters track by $index" data-ng-value="adapters.indexOf(ip)">{{ip}}</option>
</select>
在控制器中
ipcRenderer.on('device_ips_loaded', (event, adapters) => {
let storedIndex = localStorage.getItem('defaultIp') || 0
console.log('Adapters: ' + adapters)
console.log('storedIndex: ' + storedIndex)
$scope.adapters = adapters
$scope.$apply(function() {
$scope.selectedOption = adapters[storedIndex]
})
console.log('selectedOption: ' + $scope.selectedOption)
})
答案 0 :(得分:1)
我建议您使用ngOptions
。
查看工作:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body ng-controller="MainCtrl">
<div class="col-md-12">
<select class="form-control" ng-options="key as ip for (key, ip) in adapters" ng-model="selectedOption">
<option value label="Select an adapter" hidden></option>
</select>
<pre ng-bind="selectedOption"></pre>
</div>
</body>
</html>
{{1}}