私はAngularを初めて熟知しているので、これは問題に近づく最良の方法ではないかもしれません。 Devices
というファクトリに、topDevices
スコープと呼ばれるディレクティブからアクセスしようとしています。ディレクティブスコープから角型工場へのアクセス
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)
機能もあります。
EDIT:詳細情報
これの目的は、いくつかのXメトリックによって、例えば、トップ5のデバイスを一覧表示することができ、テンプレートを作成することです。テンプレートはこれです:
<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さんセント: あなたは「<トップデバイスソート=」CTRL ==>それを呼び出す方法のREFのinteedを渡すことができます。sortByKey "> top-devices>" –
'&'を使用する場合、このように参照する必要があります - >メソッドを呼び出さない – kidroca
詳細な説明をありがとうございます。私はまだすべてを把握しようとするのに苦労していますが、それは主に私がAngularにとって初めてのことです。私ができると思ったのは ' top-devices>'と呼ぶだけで、上位5個のデバイスを ' keyName'。あなたが提供した例から、コントローラーとディレクティブの間にもう少しカップリングが関わっているようですが、リストになければ 'count'と' sortKey'がどのようにディレクティブに渡されるのかわかりません' top-devices>'の属性として使用します。 –
Andrew