如何在下拉列表中预先选择所选项目?[角度]
How do I pre-select the selected item in a dropdown list? [Angular]
我目前有一个服务处于angular状态,它会向我返回一个状态列表。阵列如下:
model.Address.StateList = [
{ Disabled: false,
Group: null,
Selected: false,
Text: "CA",
Value: "1"
},
{ Disabled: false,
Group: null,
Selected: false,
Text: "IL",
Value: "2"
},
{ Disabled: false,
Group: null,
Selected: false,
Text: "NJ",
Value: "3"
}
]
我也从服务中返回他们实际选择的状态,看起来像这样:
model.Address.State = "CA"
我已经搜索了stackoverflow,试图找到一种方法来实现这一点,但我不知道如何在列表中预先选择值。
我试过这个:
<select id="State" ng-model="model.Address.State" ng-change="changeState(model.Address.State)" ng-options="option as option.Text for option in model.Address.StateList track by option.Value"></select>
但这并没有预先选择第一项。
我让它工作的一种方法是将ng模型更改为"selectedItem",并在控制器中写道:
$scope.selectedItem = responseModel.Address.StateList[0];
但这只是挑选第一项。
问题似乎是我有一个国家汇编,但我想要的模式只是单一的文本。理想情况下,我想将所选的设置为添加到模型对象中,这样当我保存时,我就可以将"模型"与我需要的所有值一起传递给我的api。
要用于ng-model
的值应与在ng-options
中使用的值匹配。例如:
model.Address.State = "CA"; // matches the Text property
<select id="State" ng-model="model.Address.State" ng-options="option.Text for option in model.Address.StateList"></select>
如果你想使用Value
,你需要匹配它们:
model.Address.State = "1"; // matches the Value property
<select id="State" ng-model="model.Address.State" ng-options="option.Text as option.Value for option in model.Address.StateList"></select>
希望能有所帮助。
有关可能的解决方案,请参阅此JSFiddle。
我在那里使用了一个作用域变量selectedState
,并在ng-model
属性中使用它,但如果您愿意,可以将其替换为model.Address.State
。
由于将model.Address.State
与ngModel
指令绑定并使用track by option.Value
,因此可以将model.Address.State
的值设置为要设置为活动的选项的值:
model.Address.State = "1";
如果您想使用"CA"
,您可以将ng-model
更改为当前范围的属性:
<select ng-model="model.Address.State" ng-options="option.Text as option.Text for ... track by Text" ...>
$scope.selectedState = "CA";
我想通了!
多亏了这里写的有见地的指南,我能够更多地了解ng选项和角度选择。
最终的问题是,我需要指定下拉列表中显示的文本与模型中的文本相匹配。使其工作的最终代码是:
<select id="State" ng-model="model.Address.State" ng-options="option.Text as option.Text for option in model.Address.StateList"></select>
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- jQuery:根据select选项中的每页项目进行分页
- 更新:仅根据单选按钮和所选选项选择特定项目
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- 如何在angular js中的select选项中获取所选项目id
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 通过单击按钮将选项卡(项目)添加到选项卡面板,扩展
- 如何将此选项添加到此图像选取器项目中
- 更新“项目”选项以进行排序
- 在呈现项目后,挖空选择绑定回调的选项
- 在单击选项卡式项目时隐藏和创建另一个对象 - HTML CSS
- 使用表排序器筛选所选选项列表中的选定项目
- jQuery 在选项列表中重新填充所选项目
- 将项目插入活动选项卡窗格
- Microsoft Dynamics Online:将所有选项集项目复制到多行文本字段(使用 JavaScript)
- 在选择选项中选择多个项目,而不使用“Ctrl”键
- jQuery Mobile,在选项列表中选择所有项目
- 从下拉列表中选择项目后,显示新选项并显示文本
- 如何使用jquery将多选下拉列表的所有项目(选项)转换为数组