Angularjs Angular.config()和run()的ES6语法
我正在尝试将我的应用程序转换为使用ES6语法,并且在我的主模块中有配置和运行调用 我把它们改成了Angularjs Angular.config()和run()的ES6语法,angularjs,ecmascript-6,Angularjs,Ecmascript 6,我正在尝试将我的应用程序转换为使用ES6语法,并且在我的主模块中有配置和运行调用 我把它们改成了 import * as angular from 'angular'; import {config,run} from './my-config'; import MyAppController from './my-app-controller'; module.exports = angular.module("my-app", []) .config(config) .
import * as angular from 'angular';
import {config,run} from './my-config';
import MyAppController from './my-app-controller';
module.exports = angular.module("my-app", [])
.config(config)
.run(run)
.controller('myAppController', MyAppController)
这是my-config.js
import MyService from './my-service';
export function config($compileProvider, $logProvider, localStorageServiceProvider,$stateProvider, $urlRouterProvider){
console.log('.config() : START ');
$compileProvider.debugInfoEnabled(true);
$logProvider.debugEnabled(true);
localStorageServiceProvider.setPrefix('myapp');
localStorageServiceProvider.setNotify(true, true);
$stateProvider.state('home', {
url: '/',
views: {
'main': {
controller: 'myAppCtrl',
templateUrl: 'app/home.tpl.html'
}
}
});
// handle routes here
$urlRouterProvider.otherwise('/');
}
config.$inject =['$compileProvider', '$logProvider', 'localStorageServiceProvider','$stateProvider', '$urlRouterProvider'];
export function run(MyService) {
console.log('.run() : ');
MyService.start();
}
run.$inject=['MyService'];
未调用配置和运行函数
请让我知道我错过了什么
谢谢我有几点建议:
import angular from 'angular';
export default angular
.module('app', [
//list of your modules
])
.config(config)
.run(run)
.name;
我们使用的配置:
export default function config(/* injectables here */) {
//Your code
}
运行我们使用的:
export default function run(/* injectables here */) {
/* @ngInject */
//Your code
}
您可能不会像我们一样使用注入式,或者使用/*@ngInject*/下面我将编写一个示例,解释如何使用ES6和Angularjs编写配置的语法 我们假设我们的引导模块名为:
main
,所以我们需要添加这个模块
main.js
import angular from 'angular';
import ngRoute from 'angular-route';
import MainRoute from './main.route';//import config rout whuch I added in //other js file
let mainModule =
angular.module('mainApp', [
'ngRoute',
homeModule.name,
]
)
.config(MainRoute);
export default mainModule;
export default function routeConfig($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'src/content.components/home/home.tpl.html',
controller: 'HomeController as vm'
});
}
routeConfig.$inject = ["$routeProvider"];
main.route.js
import angular from 'angular';
import ngRoute from 'angular-route';
import MainRoute from './main.route';//import config rout whuch I added in //other js file
let mainModule =
angular.module('mainApp', [
'ngRoute',
homeModule.name,
]
)
.config(MainRoute);
export default mainModule;
export default function routeConfig($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'src/content.components/home/home.tpl.html',
controller: 'HomeController as vm'
});
}
routeConfig.$inject = ["$routeProvider"];
这是如何解决问题的?Angular 1.x不是ES6,那么如何从“Angular”导入Angular呢代码>应该开箱即用吗?
config
和run
的导入在哪里?为什么要将我的config.js一分为二?导出模块名称的意义是什么?我已经将conf分为两个文件。之前我没有“导出默认值”,因为如果我在同一个文件中放置两个函数,它是不允许的。现在我已经将它们拆分为两个文件,每个文件都有导出默认值。然而,在所有这些之后,我仍然没有看到调用run或config方法!!我的问题似乎是美元注入不起作用。这个调用将运行()方法,但任何东西都不会被注入run()或config()方法。我能够解决这个问题。我的package.json中没有ui路由器,需要创建一个模块将服务注入到运行函数中。Angular 1.x的常规版本没有导出任何内容,因此,import*作为Angular从“Angular”导出代码>无法工作。我用导出默认值替换了module.exports,它没有抛出任何错误。(之前我使用的是旧版本的node和npm,不确定这是否导致了使用export default时出现的错误)。