Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:ngMessages不使用select中的ng选项_Angularjs_Angularjs Directive_Angularjs Ng Repeat_Ng Options_Ng Messages - Fatal编程技术网

AngularJS:ngMessages不使用select中的ng选项

AngularJS:ngMessages不使用select中的ng选项,angularjs,angularjs-directive,angularjs-ng-repeat,ng-options,ng-messages,Angularjs,Angularjs Directive,Angularjs Ng Repeat,Ng Options,Ng Messages,我已经看到了一些对ng repeat有效的答案,但对于ng选项,我面临着一个问题 问题:如果要显示所需的错误消息,请触摸下拉列表,但未选择任何内容,我可以使用输入字段执行此操作 JS代码 $scope.personMap = [{ name:"Abc", id:"a"}, { name:"XYZ", id:"b"}, { name:"FGH", id:"c"}, { name:"TY", id:"d"} }] HTML <select name="inpName" ng-model=

我已经看到了一些对ng repeat有效的答案,但对于ng选项,我面临着一个问题

问题:如果要显示所需的错误消息,请触摸下拉列表,但未选择任何内容,我可以使用输入字段执行此操作

JS代码

$scope.personMap = [{ name:"Abc", id:"a"},
{ name:"XYZ", id:"b"},
{ name:"FGH", id:"c"},
{ name:"TY", id:"d"}
}]
HTML

<select  name="inpName"  ng-model="person.name" ng-options="i as i.name for i in personMap track by i.id" required>
        <option value=""  selected hidden/> </select>
        <div ng-messages="form.inpName.$error" ng-if="form.inpName.$touched">
          <div ng-message="required">Required field</div>
            </div>
           </div>

必填字段

由于还没有答案,我将发布我发现的问题

因此,当我使用
ng options
时,它会在下拉列表中额外添加一行,该行可以为空,也可以提供类似“选择我”的内容

我添加了下面的代码来修复这个问题,在chrome中它没有显示任何空行

<option value=""  selected hidden/> </select>

是否有人帮助我在单击选择框时触摸它?我试着在
ng click
中编写一些逻辑,但无法理解JS中的first:Correct语法。有一个太多的花括号。第二:你指的是模板中的“表单”。但是你的问题中没有表格。有吗?此外,还有一个太多的div。我建议您创建一个JSFIDLE或Plunkr@HoffZ:curely方括号是对象的数组。另外,我没有添加
标记,但它在我的代码中。@HoffZ:我也遇到了真正的问题,如果我在codepen中添加相同的代码,效果会很好,问题是我的模型正在将对象属性设置为null,因此,当我单击下拉菜单时,模型中没有任何变化,不会出现错误。但是,如果我在单击下拉菜单时设置我的
model=null
,则错误消息将按预期显示。
<select  name="inpName"  ng-model="person.name" ng-options="i as i.name for i in personMap track by i.id" required>
        <option value="">Select one </option> </select>
        <div ng-messages="form.inpName.$error" ng-if="form.inpName.$touched">
          <div ng-message="required">Required field</div>
            </div>
           </div>