Angular JS - en Passant ng-cliquez sur dollars de l'indice de la valeur à une fonction de contrôleur puis de nouveau à un autre point de vue
Je suis pass la ng-cliquez sur dollars de l'indice de la valeur de mon contrôleur, puis en utilisant une valeur dans une ng-repeat à mes données à partir d'un tableau, mais une erreur en suggérant "ReferenceError: myChoice n'est pas défini"
Mon avis months.html) a une liste de tous les mois, une fois sélectionné, il passe de la valeur pour le contrôleur.
<ion-list ng-repeat="time in times.months" ng-click="getMonthId($index)" style="">
<ion-item style="" href="#/dmtimes">{{ time.monthId }} - {{ time.MonthName }</ion-item>
</ion-list>
La vue de la sortie des spectacles:
1 - Jan
2 - Feb
3 - Mar
etc
Mon contrôleur a la suite de l'extrait de code:
.controller('dailyMeetingTimesCtrl', function($scope, MeetingNames, $ionicLoading, $firebase, $firebaseArray) {
$scope.getMonthId = function (monthId) {
alert("you selected: " + monthId); //this works fine.
$scope.myChoice = monthId; //ReferenceError: myChoice is not defined
console.log(myChoice);
}
})
Dans mon second point de vue (displayMeetingTimes.html) je veux afficher les détails de la réunion, etc pour le mois sélectionné. Le code est comme suit:
<ion-view title="Daily Meeting Times">
<ion-content ng-controller="dailyMeetingTimesCtrl" class="has-header" overflow-scroll="true" padding="true">
<ion-list>
<ion-item ng-repeat="time in times.months(myChoice).days" class="item-text-wrap">
<span>{{myChoice}}</span>
Meeting Name: {{ time.meetingName }}<br />
Star Time: {{ time.startTime }}<br />
Finish Time: {{ time.finishTime }}<br />
</ion-item>
</ion-list>
</ion-content>
</ion-view>
Quand j'ai couru l'application, la valeur de 'myChoice" n'est pas en passant par le second point de vue d'où l'erreur "ReferenceError: myChoice n'est pas défini"
Veuillez indiquer à quel endroit je vais mal? Merci.
console.log($scope.myChoice);
, non?Merci, console.log($champ d'application.myChoice); fonctionne maintenant.
OriginalL'auteur GreenDome | 2016-01-06
Vous devez vous connecter pour publier un commentaire.
Lorsque vous souhaitez passer la
$index
à l'aide deng-repeat
, vous devez le spécifier. Si votre code HTML devrait être comme suit:Deuxièmement, la raison pourquoi vous obtenez
ReferenceError: myChoice is not defined
est parce que vous n'avez jamais initialisé une variable appeléemyChoice
. Toutefois vous avez une variable appelée$scope.myChoice
.Par conséquent, vous devez effectuer les opérations suivantes pour afficher la variable dans la console:
<ion-item ng-repeat="time in times.months(myChoice).days" class="item-text-wrap">
Ne pas mettre$scope
dans la vue. Lorsque vous accédez à$scope
variable, vous ne mettez pas de$scope
dans le code html.J'ai déjà essayé, j'obtiens une erreur: "TypeError: v12.mois n'est pas une fonction", ce qui n'a pas beaucoup de sens pour moi. Savez-vous pourquoi? Merci.
Avez-vous des différents contrôleurs de différents points de vue? J'ai besoin de plus d'informations pour vous aider.
Je n'ai pas 20 réputation sur AFIN de discuter de. Un contrôleur pour les deux points de vue:
.controller('dailyMeetingTimesCtrl', function($scope, MeetingNames, $ionicLoading, $firebase, $firebaseArray) { $scope.getMonthId = function (monthId) { alert("you selected: " + monthId); $scope.myChoice = monthId; console.log(myChoice); } })
OriginalL'auteur Shaohao Lin