角度1.5&ES6-依赖项注入
Angular 1.5 & ES6 -Dependency injection
我是angular的新手,正在尝试使用ES6。
我在依赖项注入方面有问题,我无法使其工作。
我的index.js:
import/index state.css!';从"angular"导入angular;导入"angular ui router";从"导入IndexStateController/索引状态控制器;从"导入indexRouteConfig/索引路由';const依赖项=['ui.router'];导出默认角度.module("索引状态组件",依赖项).controller("IndexStateController",IndexStateControl).config(indexRouteConfig);
我的index-state.controller.js是:
类IndexStateController{构造函数($timeout){这个$timeout=$timeout;this.controllerName="示例控制器";console.log(this.$timeout);}}IndexStateController$inject=['$timeout'];导出默认值[IndexStateController];
我在控制台.log上得到了"未定义"(this.$timeout).
有人能帮我渡过难关吗?
感谢
我认为您的问题是导出包含控制器的数组,而不是导出控制器类本身。这意味着您用一组空的依赖项覆盖了$inject
属性:
export default [
IndexStateController
];
应该是:
export default IndexStateController;
或者,您可以在导出中包括注入值:
export default [
'$timeout',
IndexStateController
];
如果您使用类似gulp
的东西来构建代码,另一个解决方案是使用类似babel的东西编译es6,然后使用ngAnnotate
自动进行注入。在这种情况下,您需要将类标记为需要注入:
class IndexStateController {
constructor($timeout) {
"ngInject"
this.$timeout = $timeout;
this.controllerName = 'Example Controller';
console.log(this.$timeout);
}
}
export default IndexStateController;
相关文章:
- ES6构造函数返回基类的实例
- 如何在下面的ES6循环中获得前面的文本
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- es6 相当于下划线查找位置
- 如何在Javascript/ES6中的Aurelia浏览器应用程序中使用AWS S3
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- 如何将本地依赖项添加到npm项目中
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- jquery中的复选框依赖项
- 使用ES6类语法在控制器中分配依赖项
- ES6模块导入和依赖关系管理
- 当使用Angular1+ES6时,控制器函数中未定义依赖注入,控制器是一个类
- 角度1.5&ES6-依赖项注入
- 在单元测试时模拟 ES6 依赖项
- 如何处理 React 嵌套组件循环依赖?(使用 es6 类)
- 如何使用 ES6 在 AngularJs 中进行依赖注入
- 什么's angular的优点;当我可以在es6中使用导入/导出时,s依赖项注入
- 如何在不使用ES6类特性的情况下在Aurelia中注入依赖
- ES5和ES6中的Angular 2依赖注入