2016-02-26 56 views
0

用例有一個表並遍歷行。每一行應該從模板使用指令擴展TR上的角度ng-repeat不允許使用模板指令?

HTML

<tr ng-repeat='t in data'> 
    <stats stat="t"></stats> 
</tr> 

(片段以上不呈現任何東西)

指令

app.directive('stats', function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     templateUrl: 'stats.html', 
     scope: { 
      stat: '=' 
     }, 
     }; 
}); 

問題1: 只要ng-repeat defin編輯TR它根本不工作。什麼都沒發生。沒有迭代。

如果我把一個div中的ng-repeat並將最上面的TR標籤移動到模板中,它可以工作,但佈局被擰緊並且不保留列格式。

HTML

<div ng-repeat='t in data'> 
    <stats stat="t"></stats> 
</div> 

(片段以上不呈現正確格式化的表格)

+0

必須使用有效的html結構。 ''有限制的兒童標籤。 stats.html的外觀是什麼?數據看起來像什麼? – charlietfl

回答

1

可以把指令作爲行屬性。

<tr>已經具體允許孩子喜歡<td><th>

<tr ng-repeat='t in items' stats="t"></tr> 

指令使用template可以切換到templateUrl

app.directive('stats', function() { 
    return { 
     restrict: 'A', 
     template:'<td ng-repeat="item in t">{{item}}</td>' 
     }; 
}); 

DEMO

+0

謝謝。第一種解決方案工我通過設置replace來更改指令:false和restrict:'A'。所以它與TR元素的附加屬性相結合。它可能被關閉。非常感謝你! –

+0

'replace'默認爲'false',而且也被棄用 – charlietfl