Angular工厂在控制器中未定义

时间:2014-12-17 02:51:04

标签: javascript angularjs controller factory

我正在研究一个非常简单的工厂,用于角度控制器内部。问题是工厂似乎没有被控制器内部拾取。 console.log返回undefined,我似乎无法弄清楚原因。

var app = angular.module('App', ['ngRoute', 'ngTouch']);

app.controller('AppController', [
'$scope',
'$rootScope',
'myFactory',
function($scope, $routeParams, myFactory) {
    console.log(myFactory)
}]);

app.factory('myFactory', function() {
    return 'test';
});

1 个答案:

答案 0 :(得分:1)

问题是您的控制器是注入$ rootScope然后在函数中将其更改为$ routeParams。看看这个小提琴http://jsfiddle.net/wkqajL2x/6/,我删除了这两个属性。然后它工作正常。

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

app.controller('AppController', [
'$scope',
'myFactory',
function($scope, myFactory) {
    console.log(myFactory)
}]);

app.factory('myFactory', function() {
    return 'test';
});

所以你只需要决定你真正想要使用哪一个。