1

通知工場を作成してコントローラ内部を渡しました。工場がコントローラの内部にアクセスできない理由

alertsManager

MyApp.factory('alertsManager', function() { 
       return { 
        alerts: {}, 
        addAlert: function(message, type) { 
         this.alerts[type] = this.alerts[type] || []; 
         this.alerts[type].push(message); 
        }, 
        clearAlerts: function() { 
         for(var x in this.alerts) { 
         delete this.alerts[x]; 
        } 
        } 
       }; 
      }); 



    var LoginController = function($scope,$rootScope,alerts,alertsManager) 
     { 
     $scope.alerts = alertsManager.alerts; 
     // getting error. 
     **angular.js:11594 TypeError: Cannot read property 'alerts' of undefined** 
     } 

     LoginController.$inject = ['$scope', '$rootScope','alerts','alertsManager']; 


     **why factory not able to access inside controller.* 
+0

$ injectを使用して4を注入しています。しかし、関数 'LoginController'では3です。そして、inの機能を削除してください。 – SaiUnique

+0

'アラート'ファクトリはありますか? – SaiUnique

+0

はい、すべての工場で同じこと、私はコントローラ内の工場機能にアクセスすることができません。 –

答えて

0

コントローラに依存関係として '警告' を注入する必要はありません。

0

申し訳ありませんが非常に愚かな質問..あなたは確かですかこれらのファイルをIndex.htmlに含めますか?このような

<script src="app/services/alertsManager.js"></script> 
1

は、以下のようなものを試してみてください。

コード:

var myApp = angular.module('myApp', []); 

myApp.factory('alertsManager', function() { 
    return { 
    alerts: {'alert':"i'm from factory service"}, 
    addAlert: function() { //code }, 
    clearAlerts: function() { //code } 
    } 
}); 

myApp.controller('MyCtrl',['$scope','alertsManager', function($scope, alertsManager) { 
    $scope.test = alertsManager.alerts.alert; 
}]); 

注:を注入工場サービスコントローラに

ワーキングサンプルhere

関連する問題