Javascript AngularJS:ng重复、筛选和索引

Javascript AngularJS:ng重复、筛选和索引,javascript,jquery,angularjs,coffeescript,Javascript,Jquery,Angularjs,Coffeescript,对不起,我的语言能力,希望你能理解 我对ng重复和筛选数据有问题。 我使用$index,从ng重复数据中获取一些数据。 例如,我有20个元素。当我点击第三个元素时,索引是3,应用程序会显示更多关于第三个元素的数据。 现在,当我使用过滤器时,它工作不好,因为当我过滤最后一个元素并单击它时,索引为0,应用程序显示关于第一个元素的更多数据。 我想做的是,当我过滤,例如,第15个元素,当我点击它时,我得到更多关于第15个元素的数据,而不是第一个 HTML: .panel-body ng-repeat=(

对不起,我的语言能力,希望你能理解

我对ng重复和筛选数据有问题。 我使用$index,从ng重复数据中获取一些数据。 例如,我有20个元素。当我点击第三个元素时,索引是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脚本:

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

为什么要使用$index?您可以只使用迭代项

使用

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


addRestaurant函数中,您已经单击了餐厅

为什么不将餐厅对象发送到函数
ng click=“addRestaurant(restaurant)
,然后使用它?搜索过滤器定义在哪里?为什么对列表和详细信息视图使用相同的元素?什么HTML(模板?)语法是这样的?@war1oc谢谢,现在我发送了餐厅对象。我对函数做了一些更改,现在工作得很好!您也可以只传递所选餐厅的id,并使用该id通过包含列表的数组的find函数获取数据。