AngularJS 如何封装共用的配置?

2017-06-08 22:16:46 +08:00
 Wilon

var app = angular.module('projectApp', ['ionic']);
app.config(function($httpProvider) {
$httpProvider.defaults.transformRequest = function(obj) {
var str = [];
for (var p in obj) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
};
$httpProvider.defaults.headers.post = {
'Content-Type': 'application/x-www-form-urlencoded'
}
})

比如说上述代码,我每个 JS 文件都要写一遍这个配置,这个 app.config 如何封装在一个 JS 文件里面,其他只要引用就行了?排版比较渣,各位大神见谅

2709 次点击
所在节点    Angular
8 条回复
qyc666
2017-06-09 22:42:20 +08:00
是同一个项目吗?按理说一个项目下只要配置一次$httpProvider 后面就不需要再配置了啊
Wilon
2017-06-12 16:48:41 +08:00
@qyc666 是同一个项目,第一次配置写在什么地方?
qyc666
2017-06-12 22:19:36 +08:00
@Wilon ng-app 所对应的那个 module 下
Wilon
2017-06-13 09:45:56 +08:00
@qyc666 我一个项目有好多个 ng-app
qyc666
2017-06-14 09:46:11 +08:00
@Wilon 一个应用只能有一个 ng-app 啊,用那么多是无效的,只有第一个 ng-app 会起作用
Wilon
2017-06-14 09:56:14 +08:00
@qyc666 不止一个页面,这个应用对应多个群组的账号类别,一个群组对应一个 ng-app
qyc666
2017-06-14 15:46:49 +08:00
@Wilon 这么说的话,可以把 app.config()内的 function 提取出来放到单独的文件,后续只需要 app.config(configFn)
Wilon
2017-06-14 16:26:15 +08:00
@qyc666 了解,多谢指点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/367083

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX