2016-11-01 23 views
2

私は角度ng-repeatによってデータが取り込まれています。以下のコードは私が使用しているものですが、私はヘッダーを変更しただけで何が繰り返されています。応答可能モードのデータテーブルng-clickは機能しません。

モバイルデバイスでテストするまではすべて正常に動作し、テーブルは反応して、丸で囲まれた小さな記号を追加して非表示の列からデータを展開して表示します。これが起こると、「詳細情報」ボタンは単に機能しなくなります。

小さな+記号をクリックすると表示される情報は、クリックすると動的に追加されます。つまり、「詳細情報」ボタンはまだ隠れている元の複製ですテーブルの列。私はそれがng-clickイベントを "配線されていない"原因と考えています。

私が正しいかどうか、そして/またはこれを修正する方法を知っている人はいますか?

<table id="dtTransactions" datatable="ng" class="table table-bordered dt-responsive dataTable no-footer dtr-inline collapsed"> 
    <thead> 
     <tr> 
      <th>header 1</th> 
      <th>header 2</th> 
      <th>header 3</th> 
      <th>header 4</th> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="person in people"> 
      <td>{{ person.name }}</td> 
      <td>{{ person.age }}</td> 
      <td>{{ person.eyecolour }} }}</td> 
      <td>{{ person.shoesize }} }}</td> 
      <td align="center"> 
       <button type="button" class="btn btn-default" ng-click="doSomething(person)">More Info</button> 
      </td> 
     </tr> 
    </tbody> 
</table> 

ここに私のコントローラ用のタイプコピーがあります。私はtypescriptですの使用に非常に新しいですし、本質的に、このシステムでは、すでにあるものをコピーして自分の仕事のためにそれをrejiggingています:

module app.agreement { 
    'use strict'; 

    class DetailController { 
     // some variable declared 

     static $inject = ['$compile', '$scope', 'data', 'app.services.AgreementService', '$mdDialog'] 
     constructor(private $compile: ng.ICompileService, 
        private $scope: ng.IScope, 
        private data: any, 
        private agreementService: app.services.IAgreementService, 
        private mdDialog: angular.material.IDialogService) { 

      $('#dtTransactions').on('responsive-display', function() { 
       alert('asd'); 
       //var c = $compile($('#dtTransactions').html()); 
       //c($scope); 
       //$scope.$apply(); 
      }); 

      this.init(); 
     } 

     init(): void { 
      // variables initialised 
     } 
    } 

    angular.module('app.agreement') 
     .controller('app.agreement.DetailController', DetailController); 
} 
+0

使用し –

+0

があなたのボタンが機能していない例でplunkrを作成できます(+それがベストプラクティスです)速度を上げるためにngRepeatディレクティブにすることにより追跡しますか?私はチェックしました - シンプルなngClickは私のPCと私のAndroidの携帯電話(デフォルトのブラウザ、クロム)の両方で働いています –

+0

私はPlnkrに慣れていません...私は素早いフィドルでしたが、私は仕事の時間外に別のものを持っていきます。 – StuartMc

答えて

0

私はあなたがモバイルデバイス向けngTouchが必要だと思います。

0

あなたの機能を達成するためのあなたのアプローチは間違っています。 $indexで回避するには、次のようにボタンを繰り返さないでください。

<tr ng-repeat="person in people"> 
     <td>{{ person.name }}</td> 
     <td>{{ person.age }}</td> 
     <td>{{ person.eyecolour }} }}</td> 
     <td>{{ person.shoesize }} }}</td> 
     <td align="center"> 
      <button type="button" class="btn btn-default" ng-click="doSomething($index)">More Info</button> 
     </td> 
    </tr> 
+0

私の質問を編集しました...コードを再編集するときに、その部分を逃してしまいました。 – StuartMc

関連する問題