我希望你们在你的生活中做得很好。我正在尝试创建一个具有默认选择的选择框,并允许用户在需要时更改选择。AngularJS没有在选择框中选择用户选择
这里是的jsfiddle:https://jsfiddle.net/ibnyusrat/jf5gggj0/
我使用这行写的选择框及其选项:
<select name="defaultQuality" ng-model="CreatePlayer.form.defaultQuality" ng-options="item.quality as item.label for item in CreatePlayer.getQualities() track by item.quality">
<option style="display:none" value="">Select a quality</option>
</select>
和产生的选项的功能是:
CreatePlayer.getQualities = function(){
var c = Array();
c[0] = {quality:"SD",label:"SD"};
if(CreatePlayer.form.p1080){
c[1]={quality:"HD",label:"HD"}
}
return c;
}
如果我删除此行:
CreatePlayer.form.defaultQuality = {quality:"SD",label:"SD"};
它似乎工作。问题是,如果我没有定义默认选项,则选择按照它应该的方式工作。但是现在我定义一个默认选项,然后以编程方式向列表中添加一个选项,更改选择会导致选择框恢复为第一次的空值,但在以下所有时间都可以工作。所以用户实际上必须选择两次才能识别它。
我在这里犯了一个非常明显的错误吗?请帮忙。
只需删除'track by item.quality',你应该没问题 –
@AlonEitan因为它可以在JSFiddle上测试,所以通过选项删除轨道导致没有默认选择,这就是我已经写过的脚本似乎没有默认选项工作。 –
那么这样的事情也许呢? https://jsfiddle.net/jf5gggj0/1/ –