AngularJS - 模块 - 控制器访问问题

时间:2014-03-17 10:57:49

标签: javascript angularjs

我有一个问题,从我的应用程序传递到我创建的模块。我在下面创建了一个AngularJS模块。

(function (document, window) {

    'use strict';

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

    piCart.config(['$routeProvider', function($routeProvider){
        $routeProvider.
            when('/cart', {
                templateUrl: "packages/pi-cart/segments/cart.html",
                controller: 'CartController',
                private : true
            }).
            when('/checkout', {
                template: "Checkout Page",
               // controller: 'CartController',
                private : true
            });
    }]);

    piCart.factory('TestFactory', function(){
        return{
            test : function(){
                return 'test works';
            }
        }
    });

    piCart.controller("CartController",function(TestFactory){
        console.log("Cart Controller Running");
        console.log(TestFactory.test());
    });

})(document, window);

这样就加载到我的主应用程序中

var app = angular.module('app', ['ngRoute', "ui.bootstrap", "googlechart", "piCart"]);

我试图从app.controller调用模块TestFactory,如此

app.controller('ProductController',function($scope){

  $scope.addToCart = function(id){
    //alert("clicked: "+id);
    test = TestFactory.test();
    console.log(test);
  };

});

但是我得到了错误 ReferenceError: TestFactory is not defined

1 个答案:

答案 0 :(得分:0)

我相信你得到了这个错误,因为你没有在控制器中注入TestFactory:

app.controller('ProductController', function($scope, TestFactory) {
    // your code...
});