【问题标题】:Angular 1.5 ES6 'Controller not function got undefined' errorAngular 1.5 ES6 'Controller not function got undefined' 错误
【发布时间】:2016-03-11 12:43:13
【问题描述】:

我试图在 ES6 中运行一个简单的 Angular 模块,但得到“Argument 'HomeController' 不是函数,未定义”错误。我从 gulp 和 babel 获得编译/缩小的 app.min.js。

Folder Structure

代码如下:-

app.js
-------
import PersonService from './services/PersonService';
import HomeController from './controllers/HomeController';
var app = angular.module('myApp', []);
app.service('PersonService', PersonService).controller('HomeController', HomeController);

HomeController.js
-----------------
import PersonService from '../services/PersonService';
function HomeController($scope, PersonService){
    $scope.dept ='Department';  
    PersonService.getPerson().then(function(person) {
        $scope.person = person;
    });
}   
HomeController.$inject = ['$scope','PersonService'];
export {HomeController};

PersonService.js
----------------
import Person from '../model/Person';
class PersonService {
constructor($q) {
    this._$q = $q;
}

getPerson() {
    return this._$q.when(new Person(101, 'Test Person'));
}
}
PersonService.$inject = ['$q'];
export {PersonService};

Person.js
----------
class Person {
  constructor(id, name) {
    this.id=id;
    this.name = name;
  }
}
export { Person };

任何帮助将不胜感激..谢谢

【问题讨论】:

    标签: angularjs ecmascript-6


    【解决方案1】:

    您使用命名导出 export {name1, name2 ...},然后使用默认导入 import name from ...

    你不能那样做。

    你可以做什么:

    1. import Test from ...export default Test; 之一
    2. import {Test} from ...export {Test};

    注意:这就是 Angular 想要对你说的(他不能从 undefined 创建控制器)。

    看看: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/import https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/export

    【讨论】:

    • 谢谢。很有帮助
    猜你喜欢
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2016-12-07
    • 2014-06-29
    • 2015-06-13
    • 2017-04-25
    相关资源
    最近更新 更多