Angularjs指令清洁代码

时间:2015-07-14 18:11:16

标签: javascript angularjs

我想在td单元格中应用此指令,有6列,我只想在1,2,3和5列应用。

是否有更简洁的方法来应用而不是将原始html标签应用于这四个单元格?

 <span ng-if="item.index === 2 
                              || item.index === 7
                              || item.index === 10
                              || item.index === 11">$ </span>

我以一大堆html代码结尾:

<td><span ng-if="item.index === 2 || item.index === 7 || item.index === 10 || item.index === 11">$ </span> {{item.label2 | number}}</td> <td><span ng-if="item.index === 2 || item.index === 7 || item.index === 10 || item.index === 11">$ </span> {{item.label3 | number}}</td> <td><span ng-if="item.index === 2 || item.index === 7 ......

1 个答案:

答案 0 :(得分:2)

我同意@Fals的评论,这个逻辑可以/应该在控制器中,但为了使它更简洁,你可以这样做:

<span ng-if="[2,7,10,11].indexOf(item.index) >= 0">$ </span>
根据ÂngeloRigo的要求

更新

要在控制器中执行此操作:

markup: //ctrlRef is reference to the controller (assuming controllerAs)
<span ng-if="ctrlRef.showItem(item)">$ </span>

// in the controller (ES5):
this.showItem = function(item){
  return [2,7,10,11].indexOf(item.index) >= 0;
}

// in the controller (ES6/TypeScript)
showItem(item) {
  return [2,7,10,11].indexOf(item.index) >= 0;
}