Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不了解angularjs中的模块如何协同工作_Angularjs - Fatal编程技术网

不了解angularjs中的模块如何协同工作

不了解angularjs中的模块如何协同工作,angularjs,Angularjs,很明显,我在模块如何工作以及如何一起使用方面缺少了一些基本的东西。下面,我用html中的ng app='baseapp'创建了一个简单的angular应用程序。x在第一个控制器中正确获取4个整数 我的想法是,如果我创建一个新模块“mainApp”,并对该模块baseApp建立依赖关系,那么我就可以在baseApp中的控制器中使用testService 我猜我所做的有很多错误,但令人惊讶的是,我可以在这么少的代码行中迷失方向。这里的任何指导对于如何实际创建一个新模块都是非常有用的,它将允许我使用在

很明显,我在模块如何工作以及如何一起使用方面缺少了一些基本的东西。下面,我用html中的ng app='baseapp'创建了一个简单的angular应用程序。x在第一个控制器中正确获取4个整数

我的想法是,如果我创建一个新模块“mainApp”,并对该模块baseApp建立依赖关系,那么我就可以在baseApp中的控制器中使用testService

我猜我所做的有很多错误,但令人惊讶的是,我可以在这么少的代码行中迷失方向。这里的任何指导对于如何实际创建一个新模块都是非常有用的,它将允许我使用在先前创建的模块中定义的服务

(function () {
    'use strict';


    var baseApp = angular.module('baseApp', []);
    baseApp.service('testService', function () {
        this.myData = function () {
            return [1, 2, 3, 4];
        }
    });
    baseApp.controller('myBaseController', function (testService) {
        var x = testService.myData();
        console.log('baseApp ' + x.length);
    });


    var mainApp = angular.module('mainApp', ['baseApp']);
    mainApp.controller('myMainController',['testService', function (testService) {
        debugger;
        var y = testService.myData();
        console.log('baseApp ' + y.length);
    }]);


  }());

您是否检查了控制台,可能的问题可能是访问尚未定义的变量
x
导致的语法错误<代码>x.length在MyMain控制器内。否则这应该可以正常工作,并且只有在任何地方使用控制器时才会实例化它。我修复了输入错误并创建了一个plnkr来查看错误。这是错误:[ng:areq]参数“myMainController”不是函数,未定义。您的ngApp应该是
mainApp
而不是
baseApp
。mainApp因为它已经包含了baseApp,如果你只是用mainApp引导你的根元素,而不是baseApp只有
myBaseController
,那么这两个控制器都是可用的。尝试一下plunker并尝试一下Tanks,这很有意义。我想我已经对模块如何协同工作有了一些基本的了解。我想你走的是正确的道路。:)