2016-08-02 58 views
1

我正在做角表过滤器。我的first attempt是试图将其包括在标题上。该图标显示在错误的位置,当我将文本框的焦点更改为排序时。将角度更新一个`ng模型`里面<tfoot>

所以我把箱子移动到<tfoot>,但它看起来好像被禁用了,因为即使当我改变文本框上的内容ng-model="filter_id"它也不会改变。

外部文本框,完美的作品。

在图片:

  • 按1上<tfoot input text>:文本框变更为1,事件触发updateFilteredListfilter_id是空的,既不<p input text>也不{{filter_id}}变化。在<p input text>文本框更改为11,同样的行为
  • 按1:
  • 再次按1上<tfoot input text>文本框更改为1,{{filter_id}}更新1updateFilteredList也得到filter_id=1(甚至当过滤器1点返回相同的列表);

编辑

我发现,当应用程序开始,如果我在外部文本框中INTERAL得到更新类型。但是当我在内部键入一个字符时,请停止更新。

enter image description here

<div ng-controller="eventCtrl"> 
    <table class="table table-striped" at-table at-list="filteredList" 
     at-config="config" at-paginated> 
    <thead></thead> 
    <tfoot> 
     <tr> 
      <th><input type="text" ng-change="updateFilteredList()" 
       ng-model="filter_id" style="width: 50px" /> 
      </th> 
     </tr> 
    </tfoot> 
    <tbody></tbody> 
    </table> 
    <at-pagination at-config="config" at-list="filteredList"></at-pagination>    
    <p> 
     <input type="text" ng-change="updateFilteredList()" 
     ng-model="filter_id" /> 
     {{filter_id}} 
    </p> 
</div> 

我使用这个plug-in我的表。这是一个错误还是可能是插件的一些行为?有没有办法检测插件是否覆盖了一些事件?

控制器:

app5.controller('eventCtrl', ["$scope", "$filter", "$http" , function ($scope, $filter, $http) { 
    $scope.cars = [ 
     { Car_ID: 1, X: null, Y: null, RoadName: null, Azimuth: null, DateTime: null, Adress: null } 
    ]; 
    $scope.filteredList = $scope.cars; 
    $scope.filter_id = ""; 

    $scope.updateFilteredList = function() { 
     console.log('filter_id: ' + $scope.filter_id); 
     $scope.filteredList = $filter("filter")($scope.cars, $scope.filter_id); 
     console.log('filteredList.length:' + $scope.filteredList.length); 
    }; 

回答

1

有可能是一个更好的办法,但这是工作。由于事件已触发,我只是得到从DOM前值运行过滤器

$scope.filter_id = $('#filter_id').val(); 

功能

$scope.updateFilteredList = function() { 
     $scope.filter_id = $('#filter_id').val(); 

     console.log('filter_id: ' + $scope.filter_id); 
     $scope.filteredList = $filter("filter")($scope.cars, $scope.filter_id); 
     console.log('filteredList.length:' + $scope.filteredList.length); 
    }; 
+0

您也可以使用[**角的jqLit​​e **](HTTPS: //docs.angularjs.org/api/ng/function/angular.element)。 – developer033