0

Dans mon application de page unique, spécifiquement dans le fichier javascript, je reçois une erreur pour référence non interceptée pour la fonction reroll. Je ne comprends pas ce qui cause ce problème. Est-ce que mon fichier js est configuré dans le mauvais sens? L'erreur spécifique indiquée est, Erreur de référence, reroll n'est pas défini.AngularJS App page unique: Erreur de référence, ____ n'est pas définie

HTML:

<body ng-app="app"> 
    <!-- == Main Controller for SPA == --> 
    <div class="container-fluid bg-dark text-white" style="height:700px" ng-controller="mainCtrl"> 
    <!-- == App Title == --> 
    <h2 class="display-2 title-container text-center">{{main.title}}</h2> 
    <div class="row"> 
     <div class="container-fluid word-container text-center"> 
     <!-- == User Phrase Input == --> 
     <input type="text" ng-model="word" placeholder="Please enter word"> 
     <br> 
     <br> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="container-fluid anagram-container text-center"> 
     <!-- == Final anagram == --> 
     Anagram: {{anagram}} 
     </div> 
    </div> 
    <div class="row"> 
     <div class="container-fluid button-container text-center"> 
     <!-- Anagram "Reroll" Button --> 
     <button type="button" ng-click="reroll(word)" class="btn btn-primary btn-large">Reroll</button> 
     <!-- Anagram "Clear" Button --> 
     <button type="button" class="btn btn-primary btn-large" ng-click="word=''">Clear</button> 
     </div> 
    </div> 
    </div> 
</body> 

Javascript:

var app = angular.module("app", []); 
app.controller('mainCtrl', function($scope) { 
    $scope.main = {}; 
    $scope.main.title = "AnagramJS"; 
    $scope.reroll = function reroll(value) { 
    // set anagram to randomize 
    $scope.anagram = value.split('').sort(function() { 
     return 0.5 - Math.random() 
    }).join(''); 
    }; 
    $scope.$watch('word', (newVal, oldVal) => { 
    if (newVal) { 
     reroll(newVal); 
    } else { 
     // empty anagram if word is empty 
     $scope.anagram = ""; 
    } 
    }); 
    angular.extend($scope, { 
    reroll 
    }); 
}); 
+0

Je pense que vous devez supprimer 'angular.extend ($ scope, { reroll }); ' – Satpal

Répondre

0

reroll(newVal) devrait être $scope.reroll(newVal);

supprimer également le

angular.extend($scope, { 
    reroll 
}); 
+0

Merci! Ça a marché. – FreshOceans