【发布时间】:2014-04-24 21:12:32
【问题描述】:
我无法访问我的 Angular 工厂中的方法?我收到“TypeError:Object # has no method 'method1'”错误。我的 Angular 应用看起来像这样......
myApp.js
var myApp = angular.module('myAngApp', [])
myApp.config(function ($routeProvider, $httpProvider) {
$routeProvider
.when('/list',
{
controller: 'ListController',
templateUrl: 'partials/list.html'
})
.when('/reports/:reportId',
{
controller: 'DetailController',
templateUrl: 'partials/report.html'
})
})
factory.js
myApp.factory('factory1', function(){
var factory = {};
factory.method1 = function() {
console.log('method1');
}
factory.method2 = function() {
console.log('method2');
}
return factory;
});
ListController.js
function ListController($scope, $location, $http, $route, $rootScope, factory1) {
factory1.method1();
}
ListController.$inject = ['$scope', '$location', '$http', '$route', '$rootScope', 'factory1'];
【问题讨论】:
-
您是否尝试过为此使用 myApp.controller 语法?
-
不确定您的意思?
-
可能是我错误地访问了工厂或者我没有正确声明工厂?因为错误是... TypeError: Object #
-
工厂声明正确
标签: angularjs controller code-injection factory route-provider