2016-04-26 4 views
-1

私の言語スキルは申し訳ありません。AngularJS:ng-repeat、filter and index

ng-repeatとフィルタデータに問題があります。 ng-repeatデータから何らかのデータを取得するために、$ indexを使用しています。 たとえば、私は20の要素を持っています。 3番目の要素をクリックするとインデックスが3になり、アプリケーションは3番目の要素についてさらにデータを表示します。 フィルタを使用すると、最後の要素をフィルタリングしてクリックするとインデックスが0になり、アプリケーションが最初の要素に関する詳細データを表示するので、うまくいきません。 私がやりたいことは、例えば15番目の要素をフィルタリングするときです。その要素をクリックすると、最初の要素ではなく15番目の要素についてのデータが増えます。

HTML:

.panel-body ng-repeat=("restaurant in restaurants | filter:search") ng-click="addRestaurant($index);" 
       a aria-expanded="true" data-parent="#accordion" data-toggle="collapse" style="font-size: 18px;" 
        i.fa.fa-chevron-right.pull-right.text-muted ng-show="$index == index" 
        | {{restaurant.name}} 

JS SCRIPT:

$scope.addRestaurant = (index) -> 
    $scope.index = index 
    $scope.selectedRestaurant = $scope.restaurants[$scope.index].id 
+1

なぜない]をクリックしたaddRestaurant機能にだけ反復項目

使用$インデックス

$scope.addRestaurant = (restaurant)... ... ng-repeat=("restaurant in restaurants | filter:search") ng-click="addRestaurant(restaurant);" 

ませんを使用することができますちょうどrestaを送るurantオブジェクトを関数 'ng-click =" addRestaurant(レストラン) 'にコピーして使用しますか? – war1oc

+0

検索フィルターはどこに定義されていますか?リストビューと詳細ビューで同じ要素を使用するのはなぜですか?どのようなHTML(テンプレート?)構文ですか? – Markus

+0

@ war1ocありがとう、今私はレストランのオブジェクトを送信します。私は機能のカップルの変更を作って、今すぐうまくいく! –

答えて

2

は、なぜあなたは$インデックスを使用していますか?あなたは既にはレストラン