我尝试运行ES6构造函数代码时,' soran'标签已加载。 但它只是忽略了。如何在angular 1.5 component()中使用控制器来运行某些代码?
import { config } from './index.config';
import { routerConfig } from './index.route';
import { runBlock } from './index.run';
import { MainController } from './main/main.controller';
angular.module('soranSpace', ['ngAnimate', 'ngCookies', 'ngSanitize', 'ngMessages', 'ngAria', 'restangular', 'ui.router'])
.config(config)
.config(routerConfig)
.run(runBlock)
.controller('MainController', MainController)
.component('soran', {
bindings: {},
template: '<div id="map-viewport"></div>',
scope: {},
controller: soranController
});
class soranController {
constructor($log) {
'ngInject';
$log.log("run!"); // how to run this ?
}
}
答案 0 :(得分:3)
将类定义移到组件定义之上。在ES6中,不会提升类声明,因此在定义组件时未定义soranController
。上周我遇到了同样的问题,并且由于某些原因它没有抛出任何错误 - 我认为它与代码的编译方式有关。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Hoisting
答案 1 :(得分:-3)
你需要写:
controller: () => new soranController(),
因为它需要一个功能。