私はこの問題に何度も遭遇し始めています。シナリオは、再利用したい部分があるということです。問題は、新しいデータがパーシャルに表示されるようにするには、スコープ内の以前のデータを上書きする必要があることです。人々がこれをどのように回避するかを知りたいです。
次に例を示します。
すべて$scope.pebbles
同じパーシャルを使用および共有するタブがあります。タブごとに、異なるデータを入力したいと思います。当然のことながら、データの新しいリクエストを作成し、それを変数に格納してデータを変更します。たとえば、$scope.pebbles = getPebbles(color)
. これの問題は、タブを変更するたびに新しいリクエストを作成する必要があることです。巨大なパーシャルを持たずにこれを回避するより良い方法はありますか?
概要.html:
<tab>
<tab-heading>
<i class="icon-bell"></i> All
</tab-heading>
<div class="tab-content">
<div ng-include="'views/partials/_pebbles.html'"></div>
</div>
</tab>
<tab ng-repeat="color in colors">
<tab-heading ng-click="tab(color)">
{{color}}
</tab-heading>
<div class="tab-content">
<div ng-include="'views/partials/_pebbles.html'"></div>
</div>
</tab>
_pebbles.html:
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
<th>Pebble Name</th>
<th>Pebble Type</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="pebble in pebbles">
<td>{{pebble.name}}</td>
<td>{{pebble.type}}</td>
</tr>
</tbody>
</table>
コントローラ:
$scope.colors = ['blue','red','orange','purple']
$scope.pebbles = getPebbles() // http factory, makes a request for data
$scope.tab = function (color) {
$scope.pebbles = getPebbles(color)
}