angularjs 如何使用angular将cells colspan基于条件值?

zlhcx6iw  于 11个月前  发布在  Angular
关注(0)|答案(4)|浏览(165)

基于html页面上其他地方的值,我需要一个表格中的行来显示更多的单元格,然后在表格中的其他地方。为了保持对齐正确和一切干净,我正在寻找一种方法来动态设置一个单元格的colspan使用angular。我似乎不能得到这个工作。

<input type="checkbox" ng-model="vm.noInventory"/>

<table>  
  <th>
     <td>Product</td>
     <td colspan={{vm.noInventory ? '2' : '1'}}>Inventory<td>
     <td ng-show="vm.noInventory"></td>
  </tr>
  <tr>
     <td>Product B</td>
     <td>55 parts</td>
     <td ng-show="vm.noInventory">Backordered</td>      
  </tr>

</table>

字符串

f45qwnt8

f45qwnt81#

找到解决方案.

<td colspan="{{vm.noInventory ? '2' : '1'}}">Inventory<td>

字符串

jdg4fx2g

jdg4fx2g2#

如果您使用的是动态生成表行的angular,则可以使用以下<td [attr.colspan]="fieldsChanged.fieldName == 'Comments' ? '2' : ''"> {{fieldsChanged.newValue}}</td>

11dmarpk

11dmarpk3#

另一种方法是,如果你可以通过CSS设置colspan,那就是利用ng-style并定义一个函数,该函数返回一个与你指定的内联对象类似的对象。
例如,你可以像下面这样将ng-style指令添加到TD元素中:

<td ng-style=vm.colWidth(vm.noInventory)>Inventory<td>

字符串
在你的JS中:

vm.colWidth = function(noInv) {
  return  {"colspan": noInv ? '2' : '1' };
};

vmpqdwk3

vmpqdwk34#

对于任何有问题的人来说,this帖子的顶部评论都有帮助。最后我使用[colSpan]="holdingsData.fund.entity[0].ticker ? '2' : '1'"显然输入你自己的变量,它应该可以做到这一点。

相关问题