目前我正面临这个问题
我有这个数组,这个选择html
$ctrl.languages =
[
{
key: 'Play Prompt',
value: 'blank'
},
{
key: 'Dont Play Prompt - Assume English',
value: 'English'
},
{
key: 'Dont Play Prompt - Assume Spanish',
value: 'Spanish'
}
];
<select class="form-control" name="vdn" ng-model="$ctrl.ivr.Language"
ng-options="item.value as item.key for item in $ctrl.languages" ng-required="true">
</select>
我使用该下拉列表显示每个选项的当前下拉列表中的键,并保存&#34;值&#34;在数据库中选择的选项的属性,但是当我使用&#34;值&#34;检索数据的选项时未选择ssaved。
在这种情况下,如果我保存空白&#39;数据库中的值我希望下拉菜单中有“播放提示”字样。选择了密钥。
由于
答案 0 :(得分:0)
您设置item.value
作为从下拉列表中选择选项时设置为$ctrl.ivr.Language
的值。由于<select>
的{{1}}指令指向ngModel
,因此在控制器中将值设置为$ctrl.ivr.Language
会自动将$ctrl.ivr.Language
添加到下拉列表中的项目具有匹配值的selected="selectd"
属性。
因此,如果您希望“播放提示”为数据库中不包含该设置值的下拉列表中选择的值,则可以检查API响应中是否存在该值,如果它没有,然后将value
设置为默认为“播放提示”选项。
答案 1 :(得分:0)
这看起来非常简单。 我在这里提供了一名工作人员:https://plnkr.co/edit/sCusyXaSJdO0sjgm3csE?p=preview
如果您正在寻找其他内容,请告诉我。
在我的代码中,我添加了一个模拟Web服务调用的超时。 这是来自plunker的控制器代码:
app.controller('mainController', function($scope, $timeout) {
$scope.languages = [
{
key: 'Play Prompt',
value: 'blank'
},
{
key: 'Dont Play Prompt - Assume English',
value: 'English'
},
{
key: 'Dont Play Prompt - Assume Spanish',
value: 'Spanish'
}
];
$scope.ivr = {};
// Simulating Web service Call
$scope.retrievingData = true;
$timeout(function() {
$scope.ivr.Language = 'blank';
$scope.retrievingData = false;
}, 2000);
});