Onclick ng-show不使用angularJS和Ionic显示手风琴中的数据?

时间:2014-09-29 07:58:22

标签: angularjs

我有一个返回诊所列表,另一个是onclcik取诊所ID并调用api并在手风琴列表中显示该特定id的数据。

但是通过使用ng-show,我无法显示数据。

这是我的代码:

Html代码:

<ion-list id = "background">
        <div id = "background"  >
          <ion-item class="item-stable item item-avatar"  ng-click = "select(list.ClinicId);" ng-repeat="list in searchlist">
            <img ng-src = "img/1.png"/>
            <!--  &nbsp; -->
            {{list.Name}}
            &nbsp;
            <p> Address: {{list.Address.Address1}},  {{list.Address.Address2}},  {{list.Address.Postcode}},  {{list.Address.State}},  {{list.Address.Suburb}}</p> 
            </ion-item  >
            <ion-item class="item-accordion"  ng-show="isSelected();" ng-repeat="available in appointments" >
              {{available.Appointments.Name}} {{available.Appointments.Speciality}}
            </ion-item>
        </div>
      </ion-list>

JavaScript代码:

$scope.select = function(item) {
            api.AvailableAppointments(item)
                .success(function(data) {
                $scope.availableappointments = data;
                console.log(data);
                window.sessionStorage['availableappointments'] = angular.toJson(data);
                var appointments = window.sessionStorage['availableappointments'];
            })
            .error(function(data) {
                console.log(data);
            });
              };
  $scope.isSelected = function() {
        var appointments = window.sessionStorage['availableappointments'];
        $scope.appointments = angular.fromJson(accessData); 
        console.log($scope.appointments);
    };

请告诉我出错的地方...... enter image description here

1 个答案:

答案 0 :(得分:0)

如果有一个plunker文档加入你的问题会很棒,但我可能知道为什么它不起作用。

您的isSelected()函数不会返回任何可能不会更改的原因。 尝试添加$ index作为函数的参数,并将其与活动的clinicID(已点击的那个)进行比较,然后返回答案。

<强> html的

        <ion-item class="item-accordion"  ng-show="isSelected($index);" ng-repeat="available in appointments" >
          {{available.Appointments.Name}} {{available.Appointments.Speciality}}
        </ion-item>

<强>的.js

  $scope.isSelected = function(itemIndex) {
        var appointments = window.sessionStorage['availableappointments'];
        $scope.appointments = angular.fromJson(accessData); 
        console.log($scope.appointments);
        return (itemIndex == itemSelectionnedIndex);
    };

如果ng-show尝试使用ng-if

,则无效

修改: 我尝试根据你给我的例子调整你的代码: http://codepen.io/anon/pen/wdjAn

您只需调整代码,以便在第二次单击时隐藏第二个手风琴。 但它应该工作...... 你的主要问题(从我在你的代码中看到的)是你被选中没有返回任何东西,你的约会变量不是一个列表。

希望它能解决你的问题。