简体   繁体   English

为什么我的默认选项会从我的选择中消失?

[英]Why does my default option disappear from my select?

Plunkr: https://plnkr.co/edit/ubAPmJoMQaKBLvWSsmTv?p=preview Plunkr: https ://plnkr.co/edit/ubAPmJoMQaKBLvWSsmTv p = preview

在此输入图像描述


In my app when I first toggle open this dropdown: 在我的应用程序中,当我第一次切换打开此下拉列表时:

在此输入图像描述

After closing and reopening the dropdown: 关闭并重新打开下拉列表后:

在此输入图像描述


My markup: I have my ng-init="vh.loadedViews[0].description" setup, not sure why this changed :( 我的标记:我有我的ng-init="vh.loadedViews[0].description"设置,不知道为什么会改变:(

<section class="saved-views-modal" ng-show="vh.loadSavedModal">
    <header><h1>Select a saved view</h1></header>

    <div class="select-style">
        <select name="select"
                ng-init="vh.loadedViews[0].description"
                ng-show="vh.viewsAvaliable"
                ng-model="vh.description"
                ng-change="vh.chooseView(vh.description)">
                <option ng-repeat="view in vh.loadedViews"
                        ng-init="vh.description=vh.loadedViews[0].description"
                        value="{{ view.description }}">{{ view.description }}</option>
         </select>

         <select ng-hide="vh.viewsAvaliable" name="select">
            <option selected="selected" value="No saved views">No saved views</option>
         </select>
     </div>

    <button class="btn-green" ng-click="vh.loadView()">Load View</button>
    <button class="btn-green" ng-click="vh.deleteView()">Delete View</button>
</section>

I just noticed there is this error inside of the markup ?undefined:undefined ? 我刚注意到标记里面有这个错误?undefined:undefined ?

在此输入图像描述

You have to provide ng-init in select instead of option 您必须在select而不是option中提供ng-init

Like this 像这样

  <select name="select" ng-init="description=loadedViews[0].description" ng-model="description" ng-change="chooseView()">
    <option ng-repeat="view in loadedViews" value="{{ view.description }}">{{ view.description }}</option>
  </select>

DEMO

But it's better to use ngOptions 但最好使用ngOptions

Like this 像这样

  <select name="select" ng-init="description=loadedViews[0].description" ng-model="description" ng-options="view.description as view.description for view in loadedViews" ng-change="chooseView()">
  </select>

DEMO

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM