从选项中选择后如何保持所选值

How to keep the selected value after selecting from options?

本文关键字:何保持 选项 选择      更新时间:2023-09-26

我是AngularJS编程的新手,只有几个星期,我想了解为什么,在我使用的选择框中,当重新加载页面或在页面之间切换并返回到此页面时,所选择的选项不保留为要显示的主要选项,而选项<option value="" selected>No assignat</option>是始终留在那里的选项?

<select ng-model="selected" ng-options="poblacio.title for poblacio in poblacions" ng-change="canviarPoblacio(selected)">
        <option value="" selected>No assignat</option>
</select>

控制器

.controller('ConfigCtrl', function($scope, noms, fPoblacions){
  $scope.poblacions = fPoblacions.getPoblacionsConfig();
  $scope.selected = localStorage.getItem('nomPobleConfig');
  $scope.canviarPoblacio = function(objPobla){
    localStorage.setItem('nomPobleConfig', objPobla.title);
    localStorage.setItem('idPobleConfig', objPobla.id);
    window.location.reload();
  }
})

美元范围。poblacions从工厂接收名称列表,用户选择的名称存储在本地存储,并且必须在选择框中保持选中,我希望您能帮助我:)

请原谅,如果我的英语不是很好,谢谢你未来的答案,我希望我能找到我没有通过搜索和研究在这里stackoverflow和无处不在。

我想补充的是,当我运行它,看看它是如何工作的,这是什么出现在Chrome控制台:

<select class="selectBox ng-pristine ng-untouched ng-valid" ng-model="selected" ng-options="poblacio.title for poblacio in poblacions" ng-change="canviarPoblacio(selected)">
    <option value="" selected="selected">No assignat</option>
    <option value="object:9" label="name1">name1</option>
    <option value="object:10" label="name2">name2</option>
    <option value="object:11" label="name3">name3</option>
    <option value="object:12" label="name4">name4</option>
    <option value="object:13" label="name5">name5</option>
    <option value="object:14" label="name6">name6</option>
    <option value="object:15" label="name7">name7</option>
    <option value="object:16" label="name8">name8</option>
    <option value="object:17" label="name9">name9</option>
    <option value="object:18" label="name10">name10</option>
    <option value="object:19" label="name11">name11</option>
    <option value="object:20" label="name11">name11</option>
    <option value="object:21" label="name12">nam12</option>
    <option value="object:22" label="name13">name13</option>
    <option value="object:23" label="name14">name14</option>
    <option value="object:24" label="name15">name15</option>
</select>

我的意思是,自动分配的值是object:xx,我想最好是每个名称的id,在工厂中是1,2,3,4,5…分别为与nameXX号相同的ID ..如果这个问题也能解决,那就太好了:)

由于您使用的是ng-model='selected',您必须初始化$scope.selected,如:

$scope.selected = localStorage.getItem('nomPobleConfig');

设置$scope时。选中时,您只是将其设置为"title",而不是实际选中的对象。

localStorage。setItem (nomPobleConfig, objPobla.title);

您需要像这样将完整对象设置为localStorage:

localStorage.setItem('nomPobleConfig', objPobla);