我對Angular很新,所以也許這不是解決問題的最佳方法。我試圖從指令topDevices
範圍訪問名爲Devices
的工廠。從指令範圍訪問Angular Factory
topDevices.js
:
app.directive('topDevices', function() {
return {
restrict: 'E',
scope: {
count: '@',
sortKey: '@',
devices: Devices.sortByKey(this.count, this.sortKey)
},
templateUrl: 'app/directives/topDevices.tpl.html'
}
});
這是不是不正常允許或只是壞的做法/方法? Devices
包含使用Devices.all()
的設備列表,但我也有Devices.sortByKey(count, key)
函數返回按特定鍵排序的有限設備。
編輯:更多信息
這樣做的目的是創建一個模板,可以列出,例如,前5個設備通過一些X度量。模板是這樣的:
<h3>Top {{ count }} by {{ sortKey }}</h3>
<table class="table table-bordered table-condensed table-striped table-hover">
<tbody>
<tr ng-repeat="device in devices">
<td>{{ device.id }}</td>
<td>{{ device.name }}</td>
<td>{{ device[sortKey] }}</td>
</tr>
<tr ng-show="!devices.length">
<td colspan="3">No device info available</td>
</tr>
</tbody>
</table>
嗨,我的thow美分: 可以傳入的方法REF inteed調用它==>「<頂級設備排序=」 CTRL的。sortByKey「> top-devices>」 –
使用'&'時,您必須像這樣引用它 - >它不會調用方法 – kidroca
非常感謝您的詳細解釋。我仍然很難掌握所有這些,但這主要是因爲我對Angular來說太新了。我想我可以做的只是調用''top-devices count =「5」sort-key =「keyName」> top-devices>',並且能夠渲染按照' keyName'。從你提供的例子來看,控制器和指令之間似乎有更多的耦合,並且我不確定如果'count'和'sortKey'沒有被列入指令,它會被傳入指令作爲' top-devices>'的屬性。 –
Andrew