Angularjs `ng blur`-未按照下拉框上的预期进行绘制

Angularjs `ng blur`-未按照下拉框上的预期进行绘制,angularjs,angular-filters,Angularjs,Angular Filters,在angular应用程序中,对于搜索字段,我使用控制器的过滤函数。它工作得很好,但我无法用当前模型实现ng模糊 我不知道为什么这样不行,有人帮我吗 此外,我根据客户要求在两行中显示数据,请评估我的显示方法,如果有人知道更好的方法,请告诉我 使用模糊时,单击“未选择任何内容列表”: <div class="child"> <input type="text" ng-model="search" ng-focus="isDropDown = true"

在angular应用程序中,对于搜索字段,我使用控制器的过滤函数。它工作得很好,但我无法用当前模型实现ng模糊

我不知道为什么这样不行,有人帮我吗

此外,我根据客户要求在两行中显示数据,请评估我的显示方法,如果有人知道更好的方法,请告诉我

使用模糊时,单击“未选择任何内容列表”:

 <div class="child">
      <input type="text" ng-model="search" 
      ng-focus="isDropDown = true"
      ng-blur="isDropDown = false" //nothing selected if blur exist
      ng-keyup="village='';isDropDown = true"
      >

删除您的手表,您可以使用过滤器和模糊防止点击事件,所以禁用点击

解决方案

var app=角度。模块'plunker',[]; app.controller'MainCtrl',函数$scope,$filter{ $scope.items=[{ id:1, 姓名:'约翰', 村庄:“kongambattu” }, { id:2, 姓名:'史蒂夫', 村庄:“Serivanthadu” }, { id:3, 名字:“乔伊”, 村庄:“moolapakkam” }, { id:4, 姓名:'玛丽', 村庄:“Sooramangalam” }, { id:5, 姓名:'马里林', 村庄:“Kariyamanikkam” }, { id:6, 名称:'Arif', 村庄:“madukarai” } ]; $scope.items2=$scope.items; $scope.isDropDown=false; $scope.select=functionitem{ $scope.isDropDown=false;//如何将其放入内联?html $scope.search=item.name; $scope.village=item.village; }; }; .家长{ 宽度:15em; 边框:1px纯色灰色; 位置:相对位置; } .父跨度{ 显示:块; 字体大小:0.75em; 填充:0.5em; } .家长输入{ 宽度:100%; 填充:0.5em; 保证金:0; 框大小:边框框; 边界:0; 大纲:无; } 桌子{ 边框:1px纯红; 宽度:100%; 位置:绝对位置; 顶部:3.1米; 边界塌陷:塌陷; } 表tr td{ 填充:0.5em; } 表tr:N奇数{ 背景:ccc; } 安古拉斯普朗克 文件。书写; {{村庄|大写}} {{item.id} {{item.name}
你需要改变你的状况 ng mouseleave=isDropDown=true 这是普朗克

wahts您的要求在我选择数据后,当我按下tab blur下拉菜单not Hiddes(不隐藏)时,您能检查您的结果吗?我的问题是,当鼠标模糊来自输入时,下拉菜单not Hidden(不隐藏)请检查我的演示移除模糊事件并放回plnkr中没有任何内容,请提供有效链接
<div  class="parent" >
    <div class="child">
      <input type="text" ng-model="search" 
      ng-focus="isDropDown = true"
      ng-keyup="village='';isDropDown = true"
      >
      <span>{{village | uppercase }}</span>
    </div>
    <table ng-show="isDropDown" ng-mouseleave="isDropDown = false">
      <tbody>
        <tr ng-repeat="item in items" ng-click="select(item);">
          <td>{{item.id}}</td>
          <td>{{item.name}}</td>
        </tr>
      </tbody>
    </table>
  </div>
$scope.items2 = $scope.items;

  $scope.isDropDown = false;

  $scope.$watch('search', function(val) {
    $scope.items = $filter('filter')($scope.items2, val);
  });

  $scope.select = function(item) {

    $scope.isDropDown=false; // how to put this in inline? ( html )
    $scope.search = item.name;
    $scope.village = item.village;

  }