2016-07-19 9 views
0

Das Modell myApp wurde zuvor in einer Datei app.js definiert und die tatsächliche Datei synchro.js wird erkannt. Ich habe einen Controller, einen Service und eine HTML-Seite mit der im Controller enthaltenen Funktion definiert.
Die Funktion $ scope.clearcache in der Controller-Funktion hat die Dienste ($ http, $ timeout, ..) und meinen persönlichen Dienst nicht erkannt. Wenn ich eine console.log (afficheModal) setzen, gibt es zurück: undefined.

(function() { 
    'use strict'; 

    angular 
     .module('myApp') 
     .controller('SyncPointage.IndexController', Controller); 

    function Controller($scope,$http,LS,$q,afficheModal,$rootScope,$timeout) { 
     var vm = this; 
     console.log('a',afficheModal) 
     $rootScope.$on('us-spinner:spin', function (event, key) { 
      $scope.spinneractive = true; 
     }); 

     $rootScope.$on('us-spinner:stop', function (event, key) { 
      $scope.spinneractive = false; 
     }); 


     $scope.clearCache= function() { 
      localStorage.removeItem('employees'); 
      localStorage.removeItem('working_profile'); 
      localStorage.removeItem('employee_working_profile'); 
      localStorage.removeItem('societes'); 
      localStorage.removeItem('etablissements'); 
      localStorage.removeItem('services'); 
      localStorage.removeItem('timestamp'); 
      var message = "Le cache est vidé"; 
      afficheModal.modal1($scope,$timeout,message) 
     } 
    } 

})(); 

HTML:

<div class="col-md-16 main center-block"> 
    <div class="btn-group-vertical" role="group"></div> 
     <button type="submit" class="btn btn-blue" ng-click="clearCache()"><i class="fa fa-trash fa-2x" aria-hidden="true" fa-5x></i>&Eacute;tape 1 : Vider le cache</button> 
     <button type="submit" class="btn btn-blue" ng-click="onLoad(readData)"><i class="fa fa-spinner fa-2x" aria-hidden="true" fa-5x></i>&Eacute;tape 2 : Synchro Locale</button> 
     <button type="submit" class="btn btn-blue" ng-click="lanceLocalData()"><i class="fa fa-database fa-2x" aria-hidden="true" fa-5x></i>&Eacute;tape 3 : Synchro Database</button> 
    </div> 
+0

Unklarer Code, da einige cod e fehlt. Kannst du eine funktionierende Geige bereitstellen? –

+0

Haben Sie Fehler in der Browserkonsole? Wenn ja, bitte posten Sie es. In den meisten Fällen liegt ein Fehler in einem Winkelcode vor und daher werden die Variablen nicht richtig injiziert. – sascha10000

+0

Es ist ein Teil meines Codes, weil es ein sehr großes Projekt ist. 1) definiere ich vorher myApp Modul in einer Datei sind meine Fehler in der Konsole app.js 2): Angularjs: 12477 Typeerror:. Kann nicht Eigentum 'modal1' undefinierter bei Scope.Controller $ Umfang lesen. clearCache (index.controller.js: 39) bei fn (eval bei kompilieren (angular.js: 13322), : 4: 425) bei Rückruf (angular.js: 23549) bei Scope. $ eval (eckig. js: 15989) bei Scope. $ apply (angular.js: 16089) bei HTMLButtonElement. (angular.js: 23554) bei HTMLButtonElement.dispatch (jquery.js: 4435) –

Antwort

0

Dienstleistungen in der Steuerung eingespritzt sind in der Ansicht nicht verfügbar, wenn Sie dann Modell Umfang zuweisen. Sie sind auch nicht „globale Variablen“

Sie haben

ng-click="clearCache(LS,afficheModal)" 

Beide Parameter wie injiziert Dienste angezeigt, aber sie sind modellieren nicht Eigenschaften

Sie erklärt, dass

Versuchen

ng-click="clearCache()" 
+0

Ich korrigiere in der html, es war eine Diskrepanz. In der Funktion Controller übergebe ich die Parameter. Funktion Controller ($ scope, $ http, LS, $ q, afficheModal, $ rootScope, $ timeout) { –