从一个模块调用功能到另一个模块

时间:2019-07-05 09:56:41

标签: angularjs

我有两个angularjs文件。我已经在控制器内部创建了一个函数,现在我想从另一个模块和控制器中调用该函数。我尝试将模块依赖项注入到我的调用者模块中,但是它无法识别该函数。我是angularjs的新手。 >

这是我要调用的模块

var app = angular.module("demo", []);
        app.controller("testCtrl", function($scope,$http,$window) {
           $scope.temp = "";
           $scope.rows = []; // init empty array
           $scope.datainput =[];
           $scope.dataconfig =[];

            $scope.myrunner=function(canvasid,inputdata,configdata){

                var flag=0;
                $scope.datainput=inputdata;
                $scope.dataconfig=configdata;
                console.log("from base module");                
            }

            $scope.refresh = function(){
                location.reload();              
            }
        });

这是呼叫者模块

var app = angular.module("tester", ["demo"]);
    app.controller("mycontroller", function($scope) {


        var input=[{"status":"PAY_FAIL","value":6248},{"status":"PAY_SUCCESS","value":868},{"status":"PM_REQUESTED","value":11199},{"status":"PAY_INIT","value":992}] ;


        var config=[
        {"type":"font_name","value":"Calibri"},
        {"type":"font_size","value":"25px"}
        ] ;


        $scope.myfn=function(){



            demo.myrunner('myCanvas',input,config);
            demo.myrunner('myCanvas2',input,config);
        }


        $scope.myfn();

});

1 个答案:

答案 0 :(得分:0)

您需要使用工厂在两个模块之间进行通信。您不能在控制器内部拥有该功能,而不能从另一个模块调用该功能。

示例:

var moduleA= angular.module('demo',[]);
moduleA.factory('factoryA', function() {
    return {
        alertA: function() {
            alert('a');
        }    
    };
});

然后使用模块B中的alertA工厂:

angular.module('tester',['A']).controller('mycontroller',function($scope,'factoryA'){
    factoryA.alertA();
});