我在AngularJS(v1.7)应用程序中有2个子模块,我们称它们为A和B。我正在尝试从模块B(componentB)导入一个组件(带有html模板和控制器),以便使用模块A(componentA)中组件模板的内部。
[阅读Reuse AngularJS Component in another Module (Dependency Injection)之后,我首先尝试通过将componentB指定为componentA的依赖项,然后在componentA的模板中使用它来进行此操作。
componentA.js
angular.module('A', ['componentB']).component('componentA', {...});
componentA.html
<div>
<componentB></componentB>
</div>
不幸的是,即使正确定义了componentB并成功在模块B中使用了它,它也不起作用。我还试图通过修改app.js
,将模块B指定为模块A的依赖项,如下所示:
angular.module('A', ['B'])
.config(...
[在两种情况下,我都得到一个
未捕获的错误:[$ injector:modulerr]
我很难找到与AngularJS相关的类似问题/文章,而不是较新的Angular。我对AngularJS也很生疏,因此,请提前感谢您的帮助。
非常简单:
angular.module("moduleB",[])
.component("componentB", {
template: "<div>This is Component B from Module B</div>"
});
angular.module("moduleA",["moduleB"])
<div ng-app="moduleA">
<component-b></component-b>
</div>
moduleA
通过将moduleB
声明为依赖项从moduleB
导入组件。
仅第一个模块声明应指定依赖项。
ERRONEOUS
angular.module('moduleA', []) .controller('ctrl', /* ... */) angular.module('moduleA', ['moduleB']) .service('serviceA', /* ... */)
再次声明依赖关系将导致控制器被注销。
angular.module('moduleA', ['moduleB'])
angular.module('moduleA')
.controller('ctrl', /* ... */)
angular.module('moduleA')
.service('serviceA', /* ... */)
有关更多信息,请参阅