2015-07-14 3 views
0

Я хочу, чтобы применить эту директиву внутри Td клеток, есть 6 колонок, и я хочу, чтобы применить только в колонках 1,2,3 и 5.Angularjs Директивы уборщик код

Есть уборщик способ применить вместо применения сырых 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 ...... 
+4

Вы должны переместить эту логику в контроллер, как метод, сделает вид чище – Fals

+1

вы поделитесь больше кода, пожалуйста? – Vineet

+1

, пожалуйста, не сбрасывайте код в комментарии ... обновляйте фактический вопрос, где код может быть отформатирован и доступен для чтения, и людям не нужно просеивать комментарии при чтении вопроса. – charlietfl

ответ

2

Я согласен ж/комментарий от @Fals, что эта логика может/должна быть в контроллере, но чтобы сделать его более кратким вы можете сделать что-то вроде этого:

<span ng-if="[2,7,10,11].indexOf(item.index) >= 0">$ </span> 

UPDATE по просьбе Ângelo Риго:

Для этого в контроллере:

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; 
} 
+0

Спасибо, Брокко, он работает, как бы он написал в методе контроллера? –

+1

Я добавил обновление, чтобы показать некоторые примеры контроллеров – Brocco

Смежные вопросы