AngularJS,加载模块

时间:2015-02-10 12:13:10

标签: angularjs

首先,我发现了AngularJS。我读过很多关于它的课程,但我对它并不熟悉。

我有一个项目,我无法修改以前的声明。 我想将wysiwyg添加到项目中。

我必须使用existant模块创建另一个控制器。 我知道,如果我重新定义模块,之前将丢失。

我认为这样会很好:

angular.module('demo')
  .controller('WysiwygCtrl', ['colorpicker.module', 'wysiwyg.module', function($scope) {
    $scope.data = {
      text: "hello"
    }
}]);

但它不起作用。

事实上,最简单的方法是:

angular.module('demo', ['colorpicker.module', 'wysiwyg.module'])
  .controller('WysiwygCtrl', function($scope) {
    $scope.data = {
      text: "hello"
    }
});

但它创建了一个新模块,我放弃了之前的模块......

我该怎样做才能让它有效?如果您需要更多代码,我可以编辑我的问题,但我认为模块/控制器是最重要的部分。

谢谢你的帮助,我从今天早上起就遇到了这个问题。

EDIT1:wysiwyg库托管在github上https://github.com/TerryMooreII/angular-wysiwyg

EDIT2:现在,没有显示任何内容,因为我有以下错误: Error: [$injector:unpr] http://errors.angularjs.org/1.2.16/$injector/unpr?p0=colorpicker.moduleProvider%20%3C-%20colorpicker.module

3 个答案:

答案 0 :(得分:1)

angular.module('moduleName', ['dep1', 'dep2']) - 创建一个模块,其中包含第二个参数中列出的依赖项,此签名也返回新创建的模块,您必须指定依赖项列表,即使它只是一个空数组[] 。这也会用相同的名称覆盖任何现有模块。

angular.module('moduleName') - 返回先前在代码中创建的模块,因此签名中缺少依赖项列表 - 这也会返回一个模块。

这两个签名都允许您添加控制器,服务等。

答案 1 :(得分:1)

另外我认为您需要在函数

中传递对它们的引用
.controller('WysiwygCtrl', ['$scope', 'colorpicker.module', 'wysiwyg.module', function($scope, colorpickermodule, wysiwygmodule) {
    $scope.data = {
      text: "hello"
    }
}

答案 2 :(得分:0)

如果在将组件创建为控制器或指令时使用数组表示法,则主函数或模块上的参数应匹配。正如我看到你使用

.controller('WysiwygCtrl', ['colorpicker.module', 'wysiwyg.module',   function($scope) {
$scope.data = {
  text: "hello"
}
你可能想说

.controller('WysiwygCtrl', ['$scope', 'colorpicker.module', 'wysiwyg.module', function($scope) {
$scope.data = {
  text: "hello"
}