当前位置: 首页 > 面试题库 >

为什么AngularJS在select中包含一个空选项?

杜苏燕
2023-03-14
问题内容

在过去的几周里,我一直在使用AngularJS,而真正困扰我的一件事是,即使尝试了所有置换或http://docs.angularjs.org/api/ng规范中定义的配置,.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。

这是玉:

select.span9(ng-model='form.type', required, ng-options='option.value as option.name for option in typeOptions');

这里的控制器:

$scope.typeOptions = [
    { name: 'Feature', value: 'feature' },
    { name: 'Bug', value: 'bug' },
    { name: 'Enhancement', value: 'enhancement' }
];

最后,这是生成的HTML:

<select ng-model="form.type" required="required" ng-options="option.value as option.name for option in typeOptions" class="span9 ng-pristine ng-invalid ng-invalid-required">
    <option value="?" selected="selected"></option>
    <option value="0">Feature</option>
    <option value="1">Bug</option>
    <option value="2">Enhancement</option>
</select>

我需要怎么做才能摆脱它?

PS:事情也不需要这样做,但是如果您使用select2而不进行多重选择,那看起来就很奇怪。


问题答案:

optionng-model传递给的一组选项中不存在被引用的值时,将生成空值ng- options。这样做是为了防止意外选择模型:AngularJS可以看到初始模型是未定义的还是未在选项集中,并且不想自行决定模型的值。

如果要摆脱空选项,只需在控制器中选择一个初始值,例如:

$scope.form.type = $scope.typeOptions[0].value;

这是jsFiddle:http :
//jsfiddle.net/MTfRD/3/

简而言之:空选项意味着没有选择有效的模型(有效的意思是:从选项集中)。您需要选择一个有效的模型值来摆脱此空选项。



 类似资料:
  • 在过去的几周里,我一直在与AngularJS合作,有一件事确实让我感到困扰,那就是即使在尝试了所有的排列或规范中定义的配置之后http://docs.angularjs.org/api/ng.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。 这是翡翠: 这里的控制器: 最后,这里是生成的HTML: 我需要怎么做才能摆脱它? 注意:没有这个东西也可以工作,但

  • 为什么在那里插入? 如果没有一个好的理由:我能用什么方法摆脱它吗? 如果您想使用以下示例:https://godbolt.org/z/74ycy63se

  • 问题内容: 在这里,您可以下载 一个acroform字段的pdf,其大小恰好是427Kb 如果我删除此唯一字段,则文件仅为3Kb,请为什么会发生这种情况?我尝试使用PDF Debugger进行分析,但似乎没有任何异常。 问题答案: 在acroform默认资源中有一个嵌入的“ Arial”字体,请参见Root/AcroForm/DR/Font/Arial/FontDescriptor/FontFil

  • 在这里你可以下载一个acroform字段的pdf,他的大小正好是427KB 如果我删除这个唯一的字段,文件只有3KB,为什么会发生这种情况?我试着用PDF调试器分析,对我来说没有什么奇怪的。

  • 问题内容: 我有两个表,我需要创建一个视图。这些表是: 我使用以下查询来执行此操作。不带“创建视图”部分的查询运行良好,但带有“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案: 问题答案: 根据文档: MySQL文档 SELECT语句在FROM子句中不能包含子查询。 解决方法是为每个子查询创建一个视图。 然后从您的视图中访问这些视图

  • 主要内容:在 HTML 中包含 HTML 文件,服务端包含,PHP 实例,客户端包含,AngularJS 包含,实例,runoob.htm 文件代码:,包含 AngularJS 代码,sites.htm 文件代码:,实例,跨域包含,sites.htm 文件代码:,angular_include.php 文件代码:在 AngularJS 中,你可以在 HTML 中包含 HTML 文件。 在 HTML 中包含 HTML 文件 在 HTML 中,目前还不支持包含 HTML 文件的功能。 服务端包含 大