2016-12-24 10 views
-2

多くのページで使用できるangularjsディレクティブを作成したい、このディレクティブはhtmlテーブルの作成を処理する必要があります。ページの要件によって異なるカラムを持つことができます。このディレクティブを書くための出発点は何でしょうか?ユーザーが異なるページに異なるカラムを持つことができますが、ディレクティブを1つしか持たない場合は、Angularjsテーブルの作成のためのカスタムディレクティブ

例のホーム・ページ

<table> 
     <tr> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>Age</th> 
     </tr> 
     <tr> 
     <td>Jill</td> 
     <td>Smith</td> 
     <td>50</td> 
     </tr> 
     <tr> 
     <td>Eve</td> 
     <td>Jackson</td> 
     <td>94</td> 
     </tr> 
    </table> 

のために可能なページについて

<table style="width:100%"> 
    <tr> 
    <th>Company</th> 
    <th>Address</th> 
    <th>City</th> 
    </tr> 
    <tr> 
    <td>Jill</td> 
    <td>Smith</td> 
    <td>50</td> 
    </tr> 
    <tr> 
    <td>Eve</td> 
    <td>Jackson</td> 
    <td>94</td> 
    </tr> 
</table> 
+0

は、このリンクに従ってくださいhttp://adrianmejia.com/blog/2016/04/08/creating-custom-angularjs-directives-初心者用/ –

答えて

1
var tableDirective = function(){ 
    return { 
     restrict: 'EA', //E = element, A = attribute, C = class, M = comment   
     scope: { 
      data: '='   
      }, 
      templateUrl: 'table-directive.html', 
     } 
}; 

angular.module('myModule').directive('tableDirective', tableDirective); 

テーブル-directive.html:

<table style="width:100%"> 
    <tr> 
    <th ng-repeat="item in data.headList">{{ item.name }}</th> 
    </tr> 
    <tr ng-repeat="item in data.rowList"> 
    <td>{{ item.name }}</td> 
    <td>{{ item.surname }}</td> 
    <td>{{ item.propertyName }}</td> 
    </tr> 
</table> 

その後、あなたはディレクティブを使用することができますし、合格データ:

0123ここで
<table-directive data="data"></table-directive> 

は、コントローラから来る:それはあなたの役に立てば幸い

... 
$scope.data = { 
    headList: [{ name: 'Company' }, { name: 'Address' }, { name: 'City' }], 
    rowList: // here will be your data 
} 
... 
+0

これは素晴らしい出発点です、私はそれを感謝します。 – zumuhu

+0

異なるページに複数のテーブルがあり、いくつかのページにはテキストとテキストボックスがテーブルの同じセルにありますが、他のテーブルはありません。テーブルの行の同じセルにテキストとアイコンが表示されるため、テーブルの動作ページのヘッダーとテーブルのヘッダーは$ scope.dataのものとは異なるので、私たちが1つの角度jsカスタムディレクティブを使用してこの種のカスタマイズを実現できるかどうかは疑問です。 – zumuhu

+0

@ zumuhu、それが私の答えを受け入れるならば:)) – vaqifrv

関連する問題