AngularJS使用html <select>标记的奇怪行为

时间:2018-03-11 11:11:23

标签: angularjs select angularjs-directive options

我是新的AngularJS框架。关于使用&lt; select&gt;的问题我几乎没有在angularjs中标记。  首先,每当我将选项的第一个值放在&lt; select&gt;中时标记,它在下拉列表中显示一个额外的空白选项。然后,当我选择下拉列表中的任何选项时,它会消失。其次,每当我将任何选项保持为空白时,它就表现正常。 为什么会这样? 这是代码: &LT; HTML&GT;   &LT; HEAD&GT;     &lt; title&gt; AngularJS Binding&lt; / title&gt;     &lt; script src =&#34; https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"&gt;&lt; / script&gt;   &LT; /头&GT;   &lt; body ng-app =&#34; app&#34;&gt;     &LT; DIV&GT;         搜索1:&lt; select ng-model =&#34; optval1&#34; &GT;                   &lt; option value =&#34; any&#34;&gt; Any&lt; / option&gt;                   &lt; option value =&#34; name&#34;&gt; Name&lt; / option&gt;                   &lt; option value =&#34; city&#34;选择&GT;城市&LT; /选项&GT;                 &LT; /选择&GT;               &LT峰; br&GT;         选择的值= {{optval1}}&lt; br&gt;&lt; br&gt;         搜索2:&lt; select ng-model =&#34; optval2&#34; &GT;                   &lt; option value =&#34;&#34;&gt;任意&lt; /选项&gt;                   &lt; option value =&#34; Name&#34;&gt; Name&lt; / option&gt;                   &lt; option value =&#34; City&#34;&gt; City&lt; / option&gt;       &GT; &LT; /选择&GT;               &LT峰; br&GT;         选定的值= {{optval2}}     &LT; / DIV&GT;   &LT; /体&GT;  &LT; / HTML&GT;

3 个答案:

答案 0 :(得分:1)

它正在发生,因为你为框架提供了不连贯,矛盾的信息。选择绑定到optval,因此optval的值告诉Angular必须选择哪个选项(您选择的属性完全没用,再一次,相互矛盾)。

  1. 您说optval1唯一可能的值是"any""name""city"
  2. optval值不是这些值中的任何一个。
  3. 因此AngularJS必须做一些补偿,并添加一个空白选项。

答案 1 :(得分:1)

您可以使用ng-init加载初始值。

<select ng-model="optval1" ng-init="optval1='any'">
                  <option value="any">Any</option> 
                  <option value="name">Name</option>
                  <option value="city">City</option>

</select>

如果您不想使用ng-init.

来使用初始值

使用ng-show / ng-if

<select ng-model="optval1">
    <option value="" ng-if="false"></option>
    <option value="any">Any</option> 
    <option value="name">Name</option>
    <option value="city">City</option>
</select> 

您还可以将样式元素硬编码为第一个下拉值。

例如:

<select ng-model="optval1">
       <option style="display:none" value="">select</option>
       <option value="any">Any</option> 
        <option value="name">Name</option>
        <option value="city">City</option>
</select>

和ng-if / ng-show一样。

希望这能解决您的问题并提供相关信息。

答案 2 :(得分:0)

&#13;
&#13;
if(Intent.hasExtra("firstName")) //Intent.hasExtra() return true or false
{
String firstName = Intent.getStringExtra("firstName");
//place here code you want to execute if intent contains firstName
}
else
{
//place here code you want to execute if intent does not contain firstName
}
&#13;
&#13;
&#13;

请找到以下代码