我正在使用ES6
创建 AngularJS 1.x 应用程序的方法编写一个小应用程序,并在我的app.js
类中有以下代码:
import {HomeController} from "./controllers/HomeController";
class StatesProvider {
//blah, blah working
}
StatesProvider.$inject = ["$stateProvider", "$urlRouterProvider"];
var myapp = angular.module("myapp", ["ui.router", "ui.bootstrap"])
.controller("HomeController", HomeController)
.config(StatesProvider);
问题是第一行代码:
import {HomeController} from "./controllers/HomeController";
这不是语法,而只是使用'import'关键字。第二次我在 VS.NET 中看到一个警告:
可能从未分配属性或全局变量“角度”
这不是真正的罪魁祸首。在我运行应用程序的那一刻,我得到 (2) JS 错误:
意外的令牌导入
和
由于以下原因无法实例化模块 myapp:错误:[$injector:nomod] 模块“myapp”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
第二个错误确实是第一个错误的问题。该导入语句有问题。如果我删除声明,那么import
Angular 应用程序会正常启动并且一切正常。
据我了解,在ES6
使用 import 语句时使用模块加载是本机功能,我不需要单独的模块加载器(即require.js
等)。请参阅以下内容中的(Angular 和 ES 模块)进行验证:http ://blog.thoughtram.io/angularjs/es6/2015/01/23/exploring-angular-1.3-using-es6.html
我需要注册我的 Angular 控制器。我做错了什么,我不能使用该import
语句来引用外部模块?