角度1.5&ES6-依赖项注入

Angular 1.5 & ES6 -Dependency injection

本文关键字:ES6- 依赖 注入 amp 角度      更新时间:2023-09-26

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