代码之家  ›  专栏  ›  技术社区  ›  AJ-

angularjs-使用<select>标记中的下拉菜单时出现问题,使用ng选项时不能有2个自定义选项

  •  1
  • AJ-  · 技术社区  · 8 年前

    我有一个 <select> 在数据数组上循环并显示下拉列表中可用的选择。

    标记如下:

     <select required class="form-control btn-primary btn dropdown-toggle"
        ng-options="s.name for s in list track by s.name" ng-model="list">
        <option selected value=""></option>
        <option value="" ng-click="">Split</option>
    </select>
    

    我想要的是,将预选值作为空字符串,我通过以下方法实现:

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

    但我需要第二个习惯 <option> 除了所有的 <选项& GT; 由ng选项生成的标记,

    在这个标签中,我需要显示一个字符串,在这个例子中是“split”,将会有一个ng点击这个 option 所以用户可以点击它,第二个下拉列表就会出现。

    问题是第二个 <选项& GT; 标记它没有显示,只有第一个,我做了一些测试,显然除了来自 ng-option .

    有解决办法吗?

    我最终需要的是 选项 列表生成者 选择权 , 然后预选 选项 它是空的(当用户加载页面时显示),第二个 选项 使用一个自定义字符串,该字符串将用作按钮。

    这里有一个jsfiddle,您可以看到第二个自定义选项标记没有显示

    https://jsfiddle.net/0xyt24sh/10/

    谢谢您

    2 回复  |  直到 8 年前
        1
  •  1
  •   JoshG    8 年前

    不可能有多个硬编码选项 ngOptions ,如文档中明确提到的:

    可选地,一个硬编码元素,其值设置为 对于空字符串,可以嵌套到元素中。这个 元素将表示空或“未选定”选项。

    解决办法可能是 ngRepeat :

    <select class="form-control btn-primary btn dropdown-toggle" ng-model="selection">
        <option value="" selected></option>
        <option ng-repeat="s in list">{{s.name}}</option>
        <option ng-click="" value="split">Split</option>
    </select>
    

    更新小提琴: https://jsfiddle.net/0xyt24sh/17/

        2
  •  0
  •   Protozoid    8 年前

    ngOptions documentation:

    或者,可以将值设置为空字符串的单个硬编码元素嵌套到元素中。然后,此元素将表示空或“未选定”选项。请参见下面的示例进行演示。

    在这种情况下, ngOptions 不适合你的问题;相反,你可以使用 <option> 带着 ng-repeat 如此:

    <select required class="form-control btn-primary btn dropdown-toggle" ng-model="selected">
       <option selected value=""></option> 
    
       <option ng-repeat="item in list track by item.code">
         {{item.name}}
       </option>
    
       <option value="split" ng-click="doSomething()">Split</option>       
     </select>   
    

    Working JSFiddle here