Javascript 离子隐藏元素直到滚动事件

Javascript 离子隐藏元素直到滚动事件,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我有条件地在我的应用程序中以手风琴式的方式显示和隐藏元素(可以在这里看到) 执行此操作的代码是: <div class="filter-menu" ng-repeat="group in Filters | orderBy: 'title'"> <div class="filter-menu-titles" ng-click="toggleGroup(group)" ng-class="{active: isGroupShown(group)}">

我有条件地在我的应用程序中以手风琴式的方式显示和隐藏元素(可以在这里看到)

执行此操作的代码是:

   <div class="filter-menu" ng-repeat="group in Filters | orderBy: 'title'">
        <div class="filter-menu-titles" ng-click="toggleGroup(group)" ng-class="{active: isGroupShown(group)}">
            <i class="icon energized" ng-class="isGroupShown(group) ? '{{group.icon}}-active' : '{{group.icon}}'"></i> &nbsp; <span class="filter-title-text" ng-class="{orange: isGroupShown(group)}"> {{group.title}}</span>
        </div>
        <div class="ion-checkbox-viewport">
            <span class="filter-header" ng-show="isGroupShown(group)">{{group.title}}</span>
            <br />
            <ion-checkbox ng-repeat="filter in group.filters | orderBy: 'name'" class="item-accordion" value="{{filter.name}}" ng-model="filter.checked" ng-change="ModifyFilter(filter)" ng-show="isGroupShown(group)">
                {{filter.name}}
            </ion-checkbox>
        </div>
    </div>
这在视图的第一次加载时非常有效。但是,当我离开视图,然后返回时,有条件地显示和隐藏的元素在执行滚动事件之前都是隐藏的。当发生滚动时,元素将再次显示


这只发生在iOS上

似乎是呈现问题,可能是在控制器的开始处尝试模板强制刷新
$state.go($state.current,{},{reload:true})嗯,我不喜欢这个,因为我在导航到新服务器时从服务器加载数据。此外,该代码还会导致崩溃。啊哈,请尝试
ng if
,而不是
ng show
。使用对象而不是变量
$scope.activeGroup={group:set group value}
。简单变量有时不会在作用域中更新。hmmm,我不是你你所说的
$scope.activeGroup={group:set group value}
我在哪里替换它?我通过重新定位HTML解决了这个问题-视图的分层一定有问题。看起来像是渲染问题,可能是在控制器的开始处尝试模板强制刷新($state.current,{},{reload:true})嗯,我不喜欢这个,因为我在导航到新服务器时从服务器加载数据。此外,该代码还会导致崩溃。啊哈,请尝试
ng if
,而不是
ng show
。使用对象而不是变量
$scope.activeGroup={group:set group value}
。简单变量有时不会在范围中更新。hmmm,我不是你你所说的
$scope.activeGroup={group:set group value}
我在哪里替换它?我通过重新定位我的HTML解决了这个问题-视图的分层一定有问题。
$scope.toggleGroup = function(group) {

    if ($scope.isGroupShown(group)) {
        $scope.shownGroup = null;
    } else {
        $scope.shownGroup = group;
    }
};

$scope.isGroupShown = function(group) {
    return $scope.shownGroup === group;
};