title: ng table do not filter empty string in strict comparison
body: <p>I am using Ng-Table to show a list of items with 3 columns: Name, Rack, Group.</p>
  
  <p>I wanted to apply 'strict comparison' to those columns, so what I did was:</p>
  
  <pre><code>  self.tableParams = new ngTableParams({
      page: 1,
      // This count: 2 can be ignored as we change it in every request.
      count: 50,
    }, {
      counts: [],
      total: 100,
      getData: function ($defer, params) {
  
        var filteredData = params.filter() ? $filter('filter')(self.data, params.filter(), true) : self.data;
        var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : self.data;
  
        $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
      }
    });
  </code></pre>
  
  <p>You can assume that <code>self.data</code> contains all my data and <code>var self = this;</code> in my controller.</p>
  
  <p>The problem with the afore mentioned code, is that when you <strong>erase</strong> the filter string in one of the columns, the <code>$filter('filter')(self.data, params.filter(), true)</code> returns no result.</p>
  
  <p>I found that, when you <strong>erase</strong> on column (lets say Name column), params.filter() will contain an object like this: {'name': ""} which is passing to the <code>$filter('filter')</code> and the filter is trying to match only empty strings!!</p>
  
  <p>I tried to override this by adding the following code:</p>
  
  <pre><code>   getData: function ($defer, params) {
        // When the user deletes the search text, this object keeps a variable with an empty string. The
        // strict comparator will accept only empty strings. To overcome this problem we delete the property
        for (var propt in params.filter()) {
          if (params.filter()[propt] === '') {
            delete params.filter()[propt];
          }
        }
  
        var filteredData = params.filter() ? $filter('filter')(self.data, params.filter()) : self.data;
        var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : self.data;
  
        $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
      }
  </code></pre>
  
  <p>My problem is that is not an <em>elegant</em> solution, and this code is looping for all search columns to see if one of them is an empty string. Can I do something faster? That can find exactly which column is empty and delete the property? Something more <em>elegant</em> and less hacky?</p>