Angular js - "TypeError: v12.months is not a function"

Angular js - "TypeError: v12.months is not a function"

这个问题正在进行中/与我的有关。

我有一个用于两个视图的控制器 (dailyMeetingTimesCtrl):

.controller('dailyMeetingTimesCtrl', function($scope, MeetingNames,$ionicLoading, $firebase, $firebaseArray) { 
    $scope.getMonthId = function (monthId) { 
        alert("you selected: " + monthId); 
        $scope.myChoice = monthId; 
        console.log(myChoice); 
     }
 })    

我可以 console.log myChoice 变量的值,但是在视图中将它用作 <ion-item ng-repeat="time in times.months(myChoice).days" class="item-text-wrap"> 或 {{myChoice}} 时,我收到错误 "TypeError: v12.months is not a function" .

不知道错误是什么意思,请指教。谢谢。

myChoice 不起作用的原因是因为那不是访问数组元素的正确方法。
而不是这样做:

<ion-item ng-repeat="time in times.months(myChoice).days" class="item-text-wrap">

你应该改成

<ion-item ng-repeat="time in times.months[myChoice].days" class="item-text-wrap">

Working Demo for your approach.

您实际上可以传递选定的月份,而不仅仅是数组,您不再需要这样做 times.months[1].days

方法二:

您可以传递所选月份,而不是传递月份的 id

<ion-list ng-repeat="month in times.months track by $index" ng-click="getMonth(month, $index)">
  <ion-item href="#/dmtimes">{{ month.monthId }} - {{ month.MonthName }
  </ion-item>
</ion-list>

Controller.js

$scope.getMonth = function (month, monthId) {
    alert("you selected: " + monthId);
    console.log(month);
    $scope.selectedMonth = month;
}

视图 2:

<ion-list>
  <ion-item ng-repeat="time in selectedMonth.days" class="item-text-wrap">
    <span>{{selectedMonth.MonthName}}</span>
    Meeting Name:   {{ time.meetingName }}<br />
    Star Time:  {{ time.startTime }}<br />
    Finish Time:    {{ time.finishTime }}<br />
  </ion-item>         
</ion-list>

我已经对方法 2 进行了 更新 Working Demo