加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular-material – 如何清除md-select中的值

发布时间:2020-12-17 06:52:43 所属栏目:安全 来源:网络整理
导读:我想要一个用户可以清除所选值的md-select.例如.他们选择一个值,但决定他们想要清除他们的选择. md-select的行为是选择选项中的第一个条目.我想让它回到没有选择的状态. 我想我可能需要一个自定义指令,所以我实现了一个简单的指令,它监听DELETE键的keydown.
我想要一个用户可以清除所选值的md-select.例如.他们选择一个值,但决定他们想要清除他们的选择.

md-select的行为是选择选项中的第一个条目.我想让它回到没有选择的状态.

我想我可能需要一个自定义指令,所以我实现了一个简单的指令,它监听DELETE键的keydown.

HTML:

<div ng-controller="AppCtrl as ctrl" class="md-padding selectdemoBasicUsage" ng-cloak="" ng-app="MyApp">
  <div>
    <h1 class="md-title">Select a state</h1>
    <span>I want the DELETE key to be able to clear the selected state.</span>
    <div layout="row">

      <md-input-container>
        <label>State</label>
        <md-select ng-model="ctrl.userState" select-clear>
          <md-option ng-repeat="state in ctrl.states" value="{{state.abbrev}}">
            {{state.abbrev}}
          </md-option>
        </md-select>
      </md-input-container>
    </div>
  </div>
</div>

JS:

(function () {
  'use strict';
  angular
      .module('MyApp',['ngMaterial','ngMessages'])
      .controller('AppCtrl',function() {
        this.userState = '';
        this.states = ('AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS ' +
            'MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI ' +
            'WY').split(' ').map(function (state) { return { abbrev: state }; });
      })
  .directive('selectClear',function() {
    return {
        restrict: 'A',require: 'ngModel',link : function(scope,iElement,iAttrs,ngModelCtrl) {
            iElement.bind('keydown',function(event) {
                if (event.keyCode === 46) {
                    ngModelCtrl.$setViewValue('',event);
                }
            })
        }        
    }    
  });
})();

这是我的代码笔:

http://codepen.io/craigsh/pen/GorpVV

但它不起作用 – 当按下DELETE键时,选择第一个选项值.

解决方法

我建议除状态列表外还使用“null”选项:

<md-select ng-model="ctrl.userState" select-clear>
      <md-option value="{{null}}">
        -- select a state --
      </md-option>
      <md-option ng-repeat="state in ctrl.states" value="{{state.abbrev}}">
        {{state.abbrev}}
      </md-option>
    </md-select>

所以工作片段(改编自你的)可以是:

http://codepen.io/beaver71/pen/LGxqjp

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读