Angularjs表创建的自定义指令

问题描述:

我想创建一个可以在很多页面中使用的angularjs指令,指令应该处理html表的创建,它可以根据页面的需求具有不同的列。在用户编写这个指令的时候,我们可以在不同的页面有不同的列,但只有一个指令。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-对于初学者/ –

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> 

然后,您可以使用指令和传递数据:

<table-directive data="data"></table-directive> 

这里data来自控制器:

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

这是一个很好的起点,我很欣赏它。 – zumuhu

+0

在不同的页面中有多个表格,并且几个页面将在表格的同一个单元格中具有文本和文本框,但其他表格不会有,一个表格将在该行的同一单元格中具有文本和图标,因此表格的行为单元格相对于页面加表头变化与我们在$ scope.data中获得的不同,所以我想知道是否可以使用一个角度js自定义指令来实现这种定制。 – zumuhu

+0

@zumuhu,如果它的工作,然后接受我的回答:))) – vaqifrv