Angular js - " TypeError:v12.months不是函数"

时间:2016-01-07 10:47:44

标签: angularjs ionic

此问题正在进行/与我的first original post相关。

我有两个视图的控制器(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}}时,我会收到错误&#34; TypeError:v12 .months不是函数&#34;。

我不确定错误是什么意思,请指教。谢谢。

1 个答案:

答案 0 :(得分:0)

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

方法2:

您可以传递所选月份,而不是传递当月的 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