2016-08-04 15 views
0
<div class="col-sm-3 col-md-3" data-ng-controller="LoginHistoryListVM" > 
     <label class="col-sm-5 col-md-5 control-label">Company Name</label> 
     <div class="col-sm-7 col-md-7"> 
      <select class="form-control" ng-model="name" ng-change="companynameSearch()" ng-options="obj.name for obj in companyname track by obj.name"> 
       <option value="">Select Company</option> 
      </select> 
      <input type="hidden" name="select_company_name" id="select_company_name" value=""> 
     </div> 
    </div> 

これは会社がドロップダウンしたものです。角度ドロップダウンフィルターが機能しない

<table class="rwd-table table table-striped table-hover" ng-table="LoginHistories.tableParams" show-filter="{{LoginHistories.filtered}}"> 
     <tr ng-repeat="loginhistory in $data | filter: name"> 
     <td data-title="'First Name'" sortable="'fname'" filter="{ 'fname': 'text' }"> 
     <!--<td data-title="'First Name'" sortable="'fname'" filter="{ 'fname': 'select' }" filter-data="uname($column)">--> 
      <!-- <a ui-sref="loginHistoryShow({userId: loginhistory.id})">{{loginhistory.fname}}</a> --> 
      {{loginhistory.fname}} 
     </td> 
     <td data-title="'Last Name'" sortable="'lname'" filter="{ 'lname': 'text' }"> 
      {{loginhistory.lname}} 
     </td> 
     <td data-title="'Compnay Name'" sortable="'name'" filter="{ 'name': 'text' }"> 
     <!--<td data-title="'Compnay Name'" sortable="'name'" filter="{ 'name': 'select' }" filter-data="cname($column)">--> 
      {{loginhistory.name}} 
     </td> 
     <td data-title="'IP Address'" sortable="'ip_address'"> 
      {{loginhistory.ip_address}} 
     </td> 
     <td data-title="'Country'" sortable="'country'"> 
      {{loginhistory.country}} 
     </td> 
     <td data-title="'City'" sortable="'city'"> 
      {{loginhistory.city}} 
     </td> 
     <td data-title="'Logged On'" sortable="'created_at'"> 
      <span class="label label-primary">{{loginhistory.created_at.date | amDateFormat:'MMM Do YYYY, h:mm:ss a'}}</span> 
     </td> 
     </tr> 
    </table> 

これは私が私がオプションをドロップダウン選択したときのようにエラーがあった追加機能companynameSearchドロップダウンを追加したコントローラである:だからダウン私は、このドロップのためにどんな提案をお願いし、「エラーが設定$スコープはnullです。」フィルタ。

function LoginHistoryListVM($filter, ngTableParams, LoginHistory,$stateParams ,$scope, $q) { 
     this.filtered = true; 
     $scope.tableParams = this.tableParams = new ngTableParams({ 
     page: 1, 
     count: 10, 
     filter:{ 
      name : $scope.name ? $scope.name.name : '' 
     }, 
     sorting: { 
      fname: 'asc' 
     }, 
     }, { 
     total: 0, 
     getData: function ($defer, params) { 
      var page = params.page(); 
      var sort = params.sorting(); 
      var filter = params.filter(); 
      var opts = { 
      page: page, 
      companyID : $stateParams.companyID, 
      orderBy: _.keys(sort)[0], 
      direction: _.values(sort)[0], 
      field: _.keys(filter)[0], 
      term: _.values(filter)[0] 
      }; 

      LoginHistory.remote.get(opts).$promise.then(function (res) { 
      $scope.companyname = res.allcompanynames; 
      var data = mapUserCompanyName(res.data.data); 
      var filteredData = params.filter() ? $filter('filter')(data, params.filter()) : data; 
      var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : data; 
      params.total(res.data.total); 
      $defer.resolve(orderedData); 
      }); 
     } 
     }); 

     $scope.companynameSearch = function() { 
     var selectedcomnayname = $scope.name.name; 
     $('#select_company_name').val($scope.name.name); 
     $scope.tableParams.reload();  
     //console.log($scope.ts.reload()); 
     }; 

     function mapUserCompanyName(data) { 
     return _.map(data, function (loginhistory) { 
      loginhistory.company = _.isObject(loginhistory.company) ? loginhistory.company.name : loginhistory.company; 
      return loginhistory; 
     }); 
     } 
    } 
+0

私はあなたの質問には理解できない何か、我々はドロップダウンについて話している場合は、あなたのテーブルに関連するコードを提供しますなぜですか? – Antipod

+0

こんにちはAntipod ..入力フィルタリングは正常に動作しています。しかし、私はリストテーブルの一番上にドロップダウンを追加します。ドロップダウンリストから会社を選択すると、エラー "設定:$ scope is null"というエラーが表示されます。私の問題は、フィルタリングでリロードしない選択ドロップダウンです。 – Raju

答えて

0

ここでは最も簡単な例を示し、正常に動作しています。だから、もっと情報を提供してください。

var app = angular.module('MyApp', []); 
 

 
app.controller('AppCtrl', function($scope) { 
 
    $scope.companyname = [ { name: 'Google'}, { name: 'IBM'}]; 
 
    $scope.selectedcomnayname = ''; 
 

 
    $scope.companynameSearch = function() { 
 
     $scope.selectedcomnayname = $scope.name.name; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script> 
 

 
<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp"> 
 
    <label class="col-sm-5 col-md-5 control-label">Company Name</label> 
 
    <div class="col-sm-7 col-md-7"> 
 
     <select class="form-control" ng-model="name" ng-change="companynameSearch()" ng-options="obj.name for obj in companyname track by obj.name"> 
 
      <option value="">Select Company</option> 
 
     </select> 
 
     <br/> 
 
     <span ng-bind="selectedcomnayname"> 
 
    </div> 
 
</div>

関連する問題