2016-07-08 11 views
0

角度を初めて使用しています。私は、ボタンをクリックするとjsonオブジェクトのセットを取得して特定のテーブルを作成する呼び出しを起動する必要があるアプリケーションを作成しました。次のコントローラコードでは、ボタンをクリックすることなく(this.tableParams経由で)テーブルを直接取り込むことができましたが、このデータフェッチプロセスを起動し、populateTable()関数が私はそれをどうやってやるの?テーブルを動的に角度を設定する

(function() { 
'use strict'; 

angular 
    .module('anomalies') 
    .controller('controller', ['$log', '$scope', '$http', 'NgTableParams', function ($log, $scope, $http, NgTableParams) { 

     $scope.populateTable = function() { 

      // 

     } 


     this.tableParams = new NgTableParams({}, { 
      filterDelay: 300, 
      getData: function (params) { 
       return $http({ 
        method: 'GET', 
        url: '/server/data.json' 
       }).then(function (response) { 
        return response.data; 
       }, function (response) { 
        $log.log(response); 
        return []; 
       }); 
      } 
     }); 

    }]); 

})(); 

答えて

2

populateTable -function内部NgTableParams -objectを作成しないのはなぜ?

angular 
    .module('anomalies') 
    .controller('controller', ['$log', '$scope', '$http', 'NgTableParams', function ($log, $scope, $http, NgTableParams) { 

    $scope.populateTable = function() { 
     this.tableParams = new NgTableParams({}, { 
     filterDelay: 300, 
     getData: function (params) { 
      return $http({ 
       method: 'GET', 
       url: '/server/data.json' 
      }).then(function (response) { 
       return response.data; 
      }, function (response) { 
       $log.log(response); 
       return []; 
      }); 
     } 
     }); 
    }.bind(this); 




}]); 

.bind(this)ではありません。これにより、thisというキーワードは、コントローラと同じようにpopulateTableファンクション内で同じ意味を持ちます。

1

this.tableParams$scope.populateTableに移動します。ビューのボタンにこの機能をバインドします。たとえば、<button ng-click="populateTable()">Click Me!</button>

関連する問題