0

我在第一次使用 jspm 时遇到了困难,需要快速指出正确的方向。(我之前加载过 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 加载的另一个控制器,我也收到此错误。

4

1 回答 1

2

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

export default AppController;

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

import { AppController } from './app.ctrl';
于 2015-07-29T06:56:32.100 回答