2016-07-19 16 views
0

モデルmyAppはapp.jsファイルで定義済みで、実際のファイルsynchro.jsが認識されます。 コントローラー、サービス、コントローラーに機能が組み込まれたHTMLページを定義しました。
コントローラ機能の$ scope.clearcache関数は、私個人サービスでもサービス($ http、$ timeout、..)を認識しませんでした。 console.log(afficheModal)を置くと、返されます:未定義です。

(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

不明瞭なコードeがありません。あなたは働くフィドルを提供できますか? –

+0

ブラウザのコンソールにエラーがありますか?もしそうなら、投稿してください。ほとんどの場合、角度関連のコードには誤差があり、したがって変数が正しく注入されません。 – sascha10000

+0

非常に大きなプロジェクトなので、それは私のコードの一部です。 1)私は以前にmyAppモジュールをファイルapp.jsに定義しています 2)コンソールのエラー: angular.js:12477 TypeError:Scope.Controller。$ scopeの未定義 のプロパティ 'modal1'を読み取ることができません。コールバック(angular.js:23549)でスコープ。$ eval(angular。 js:15989) (スコープ)$ apply(angular.js:16089) at HTMLButtonElement (angular.js:23554) at HTMLButtonElement.dispatch(jquery.js:4435) –

答えて

0

サービスは、ビューでは使用できません。彼らはあなたが

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

両方のパラメータが注入されたサービスとして示されていも「グローバル変数」

ではありませんが、彼らはあなたが

を試してみてくださいと述べた性質

をモデル化されていません

ng-click="clearCache()" 
+0

HTMLで正しく表示されていますが、不一致です。関数のControllerでは、私はパラメータを渡します。関数のコントローラ($ scope、$ http、LS、$ q、afficheModal、$ rootScope、$ timeout){ –

関連する問題