如何优化AngularJS配置函数
我的app.js文件中有以下配置函数和运行函数。优化这些函数的最佳方法是什么?我们能把这些移到一个配置函数中吗? 或者我们可以将这些文件移到另一个文件中并使用。如果可以,请在注释中更新我的代码如何优化AngularJS配置函数,angularjs,angularjs-directive,angular-ui-router,angularjs-scope,Angularjs,Angularjs Directive,Angular Ui Router,Angularjs Scope,我的app.js文件中有以下配置函数和运行函数。优化这些函数的最佳方法是什么?我们能把这些移到一个配置函数中吗? 或者我们可以将这些文件移到另一个文件中并使用。如果可以,请在注释中更新我的代码 .config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) { cfpLoadingBarProvider.includeSpinner = false; cfpLoadingBarProvider.i
.config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) {
cfpLoadingBarProvider.includeSpinner = false;
cfpLoadingBarProvider.includeBar = true;
}])
.run(function($state, $rootScope, $window) {
$rootScope.$state = $state;
$rootScope.$on("$locationChangeSuccess",
function(event, current, previous, rejection) {
$window.scrollTo(0, 0);
});
})
.config(function($httpProvider) {
return $httpProvider.interceptors.push("AuthInterceptor");
})
.config(['toastyConfigProvider', function(toastyConfigProvider) {
toastyConfigProvider.setConfig({
limit: 2,
sound: true,
position: 'top-center',
shake: false,
theme: 'material'
});
}])
.config(function($stateProvider, $urlRouterProvider, $locationProvider, helloProvider, toastrConfig) {
helloProvider.init({
facebook: '1234567899',
google: '12345890-wgewrgwrgwrgrgwr.apps.googleusercontent.com',
twitter: 'wgwerwrgwrgwrgwrgwrw'
}, {
redirect_uri: 'redirect.html',
oauth_proxy: 'https://auth-server.herokuapp.com/proxy',
oauth_version: '1.0a' // probably 1.0a with hello.js
});
也许您可以使用一个.config调用简化您的配置函数,然后您还可以命名您的依赖项来处理一个丑陋的过程
.config(["cfpLoadingBarProvider",
"$httpProvider",
"toastyConfigProvider",
"$stateProvider",
"$urlRouterProvider",
"$locationProvider",
"helloProvider",
"toastrConfig",
function (cfpLoadingBarProvider,
$httpProvider,
toastyConfigProvider,
$stateProvider,
$urlRouterProvider,
helloProvider,
toastrConfig) {
cfpLoadingBarProvider.includeSpinner = false;
cfpLoadingBarProvider.includeBar = true;
$httpProvider.interceptors.push("AuthInterceptor");
toastyConfigProvider.setConfig({
limit: 2,
sound: true,
position: 'top-center',
shake: false,
theme: 'material'
});
helloProvider.init({
facebook: '1234567899',
google: '12345890-wgewrgwrgwrgrgwr.apps.googleusercontent.com',
twitter: 'wgwerwrgwrgwrgwrgwrw'
}, {
redirect_uri: 'redirect.html',
oauth_proxy: 'https://auth-server.herokuapp.com/proxy',
oauth_version: '1.0a' // probably 1.0a with hello.js
});
}])
.run(function ($state, $rootScope, $window) {
$rootScope.$state = $state;
$rootScope.$on("$locationChangeSuccess",
function (event, current, previous, rejection) {
$window.scrollTo(0, 0);
});
});
如果您想在多个文件中组织配置函数,最好的选择可能是使用捆绑包,在这种情况下,有一些可行的选项。
例如,您可以使用concat(缩小、丑陋)文件,以便:
文件 文件1: 文件1: 文件3:
一饮而尽
var gulp = require("gulp");
var concat = require("gulp-concat");
var sourcemaps = require("gulp-sourcemaps");
gulp.task("ts", () => {
return gulp.src("./src/js/**/*.js")
.pipe(sourcemaps.init())
.pipe(concat("dist.js"))
.pipe(sourcemaps.write())
.pipe(gulp.dest("./js/"))
})
相同,或者如果您正在使用。
我更喜欢从单个应用程序/模块定义开始,然后如果解决方案开始增长,我会打开捆绑解决方案
最好。定义“优化”。您是否测量到这些函数执行速度太慢,导致性能问题?如果没有,为什么您认为应该优化它们?没有,没有性能问题。保留多个配置函数是一种好做法吗?我们可以将此配置移到sperate文件中吗?最佳做法是什么?
angular.module('mymodule', [])
.config(["dependencyB", function (dependencyB) {
dependencyB.doSomething();
}]);
angular.module('mymodule', ["dependecies..."])
.run(["authService", (authService) => {
authService.fillAuthData();
}]);
var gulp = require("gulp");
var concat = require("gulp-concat");
var sourcemaps = require("gulp-sourcemaps");
gulp.task("ts", () => {
return gulp.src("./src/js/**/*.js")
.pipe(sourcemaps.init())
.pipe(concat("dist.js"))
.pipe(sourcemaps.write())
.pipe(gulp.dest("./js/"))
})