Angular + ES6 模块:控制器函数未定义

Angular + ES6 modules: controller function undefined

我在第一次使用 jspm 时遇到困难,需要一个正确方向的 quick 点。 (我之前加载过 ES6 类,但只是作为连接文件的一部分。)

这是我的引导代码的摘录

import angular from 'angular';
import 'angular-ui-router';
import AppController from './app.ctrl';

angular.module("af2015App", ["ui.router"])
.controller("appController", AppController)

这里是app.ctrl.js

'use strict';

class AppController {
    constructor() {
        console.log("AppController");
    }
}

export { AppController }

我的 html 里有这个:

<div ng-app="af2015App" ng-controller="appController as app" class="app">

这是我得到的错误。

Error: [ng:areq] Argument 'appController' is not a function, got undefined
http://errors.angularjs.org/1.4.3/ng/areq?p0=appController&p1=not%20a%20function%2C%20got%20undefined
    at REGEX_STRING_REGEXP (VM235 angular.js:71)
    at assertArg (VM235 angular.js:1773)
    at assertArgFn (VM235 angular.js:1783)
    at VM235 angular.js:8978
    at setupControllers (VM235 angular.js:8040)
    at nodeLinkFn (VM235 angular.js:8080)
    at compositeLinkFn (VM235 angular.js:7544)
    at publicLinkFn (VM235 angular.js:7419)
    at VM235 angular.js:1638
    at Scope.parent.$get.Scope.$eval (VM235 angular.js:15849)

查看大写我可以看出这是来自 html 的解析,但我就是看不出我做错了什么。对于由 ui-router.

加载的另一个控制器,我也收到此错误

您需要在控制器文件中使用默认导出:

export default AppController;

或者,您可以按名称导入(不更改控制器):

import { AppController } from './app.ctrl';