Angularjs 使用md select和ng change从对象数组中删除项

Angularjs 使用md select和ng change从对象数组中删除项,angularjs,angular-material,angularjs-ng-change,Angularjs,Angular Material,Angularjs Ng Change,我正在尝试从md select中删除当前选定的项目。我到处玩,但还是没拿到。我想我并不完全理解ng值在md select中的工作方式。 它不会删除所选项目,还会将所选数组的name属性添加到列表的第一位 html 这是一支密码笔 如有任何帮助,将不胜感激 问题: ng value=“item.email”而不是item.name \u.filter(数组、回调)。您没有提供回调函数,而是在关闭括号后声明了一个函数 <div ng-controller="AppCtrl" ng-app="

我正在尝试从md select中删除当前选定的项目。我到处玩,但还是没拿到。我想我并不完全理解ng值在md select中的工作方式。 它不会删除所选项目,还会将所选数组的name属性添加到列表的第一位

html

这是一支密码笔 如有任何帮助,将不胜感激

问题:

  • ng value=“item.email”
    而不是
    item.name

  • \u.filter(数组、回调)
    。您没有提供回调函数,而是在关闭括号后声明了一个函数

  • <div ng-controller="AppCtrl"  ng-app="MyApp">
    
         <div layout="column">
                   <div layout="row">
                    <span style="font-weight:bold;margin-top: 7px;">remove selected email:</span>
    
                    <md-select 
                        data-ng-model="defaultEmailListItem.email"
                        aria-label="remove_email_md-select"
                        ng-change="itemChoosen()"       
                        style="margin:0px 5px;width:155px;">
                        <md-option
                            ng-repeat="item in emailList "
                            ng-value="item.name"
                            ng-bind="item.email">                   
                        </md-option>          
                    </md-select>
           </div>
                  <md-button 
                    style="line-height:0px;width:66px;max-width:66px;min-width:66px;"
                    class="md-raised " 
                    aria-label="remove_email_md_button"
                    ng-click="removeUserFromEmaillist()"
                    ga-track-event="['email', 'choose', 'remove']"
                    >remove 
                </md-button>
      </div>      
    
    
    </div>
    
    angular.module('MyApp',['ngMaterial', 'ngMessages'])
    
    .controller('AppCtrl', function($scope) {
    
     $scope.emailList=[
    {name:"aaa",email:"aaa@gmail.com"},{name:"bbb",email:"bbb@gmail.com"},{name:"ccc",email:"ccc@gmail.com"},{name:"ddd",email:"ddd@gmail.com"},                 {name:"hhh",email:"hhh@gmail.com"}];
    
    
     $scope.defaultEmailListItem = $scope.emailList[0];
    
    $scope.itemChoosen = function(){
      return $scope.defaultEmailListItem;
    }
    
      $scope.removeUserFromEmaillist = function(){
    
        $scope.emailList = _.filter($scope.emailList),function(item){
         if(item.email !== $scope.defaultEmailListItem.email){
            return item ;
            }  
          };
        };
    
    
    
    });