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

AngualrJS - Module - Controller Access Issue

本文关键字:问题 访问 模块 angalrjs 控制器      更新时间:2023-09-26

我有一个问题,从我的应用程序通信到我已经创建的模块。我在下面创建了一个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

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

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