我是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;