首先,我发现了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
答案 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"
}