我对 Angular JS 很陌生,但我一般都能理解 JS。Angular 有一个完全不同的方法,所以我不知道如何做到这一点:
得到一个对象数组,因此我可以按属性排序并按附加到输入“查询”的模型提供的字符串进行过滤。
一切正常,直到我需要保留按属性“ group
”分组的对象,当数组由输入中键入的关键字过滤时。
<input ng-model='query' type='text'>
<div ng-repeat='reservation in reservations | filter: query | orderBy: "group"'>
<span as-reset-list='{{$last}}'></span>
<h2 ng-show='CreateHeader(reservation.group)'>Group</h2>
<div>Group: {{ reservation.group }} - ID: {{ reservation.id }}</div>
</div>
要打印指示组的标题,我正在使用在currentGroup
中定义的变量“”,$scope
以便我可以与循环中的当前 object.group 进行比较。
function RestaurantCtrl($scope) {
$scope.restaurants = [/* data */];
$scope.currentGroup = '';
$scope.CreateHeader = function(group){
showHeader = (group!=$scope.currentGroup);
$scope.currentGroup = group;
return showHeader;
}
}
但是,当进行没有结果的搜索并重复另一次搜索时,变量会丢失值或其他东西,因此分组无法按预期工作。
我怎样才能做到这一点?我试过创建一个指令,这样我就可以重置变量“currentGroup”的值,但它并不总是有效。
我的代码的一个工作示例在这里http://jsfiddle.net/5HZYt/