admin 管理员组文章数量: 1086019
I'm new to angular and i'm trying to use ES6.
I have a problem with dependencies inject, i can't get it to work.
My index.js :
import './index-state.css!'; import angular from 'angular'; import 'angular-ui-router'; import IndexStateController from './index-state-controller'; import indexRouteConfig from './index-route'; const dependencies = [ 'ui.router' ]; export default angular .module('index-state-ponent', dependencies) .controller('IndexStateController', IndexStateController) .config(indexRouteConfig);
My index-state.controller.js is :
class IndexStateController { constructor($timeout) { this.$timeout = $timeout; this.controllerName = 'Example Controller'; console.log(this.$timeout); } } IndexStateController.$inject =['$timeout']; export default [ IndexStateController ];
I'm getting 'undefined' on the console.log(this.$timeout).
Can someone help me through this ?
Thanks
I'm new to angular and i'm trying to use ES6.
I have a problem with dependencies inject, i can't get it to work.
My index.js :
import './index-state.css!'; import angular from 'angular'; import 'angular-ui-router'; import IndexStateController from './index-state-controller'; import indexRouteConfig from './index-route'; const dependencies = [ 'ui.router' ]; export default angular .module('index-state-ponent', dependencies) .controller('IndexStateController', IndexStateController) .config(indexRouteConfig);
My index-state.controller.js is :
class IndexStateController { constructor($timeout) { this.$timeout = $timeout; this.controllerName = 'Example Controller'; console.log(this.$timeout); } } IndexStateController.$inject =['$timeout']; export default [ IndexStateController ];
I'm getting 'undefined' on the console.log(this.$timeout).
Can someone help me through this ?
Thanks
Share Improve this question asked Mar 24, 2016 at 10:53 GhtayGhtay 631 silver badge6 bronze badges1 Answer
Reset to default 10I think your problem is that you are exporting an array containing the controller instead of exporting the controller class itself at that means you have overriden the $inject
attribute with an empty set of dependencies:
export default [
IndexStateController
];
should be:
export default IndexStateController;
Alternatively you could include the injection values in the export:
export default [
'$timeout',
IndexStateController
];
Another solution if you use something like gulp
to build your code is to pile es6 with something like babel and then use ngAnnotate
to do the injection automatically. In that case you would want to mark the class as requiring injection:
class IndexStateController {
constructor($timeout) {
"ngInject"
this.$timeout = $timeout;
this.controllerName = 'Example Controller';
console.log(this.$timeout);
}
}
export default IndexStateController;
本文标签: javascriptAngular 15 amp ES6 Dependency injectionStack Overflow
版权声明:本文标题:javascript - Angular 1.5 & ES6 -Dependency injection - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1744044177a2523810.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论