将设置传递给AngularJS app的好方法是什么?
技术堆栈:
设置如下所示:
window.settings = {};
settings.webSocketURL = 'ws://domain.com/websocket';
settings.webSocketTopic = 'name';
window.settings = {};
settings.webSocketURL = 'ws://domain.com/websocket';
settings.webSocketTopic = 'name';
以下是几个选项:
包含脚本
缺点:settings.js文件位于scripts目录中,而不是根目录,需要加载其他脚本。
包含1中的脚本,但settings.js由Node.js生成。
缺点:要加载的其他脚本。
将设置直接嵌入HTML。
缺点:需要使用像EJS这样的模板而不是HTML。
答案 0 :(得分:0)
我有类似的问题,我使用配置解决了:
myapp
.constant("settings", {
"webSocketURL": 'ws://domain.com/websocket',
"webSocketTopic": "name"
})
然后在您的控制器中,您只需要注入设置,然后使用settings.webSocketURL
答案 1 :(得分:0)
我想您可以在任何地方创建配置模块
// config/app.coffee
angular.module('MyAppConfig', [])
.config ($provide) ->
$provide.constant 'webSocketURL', 'ws://domain.com/websocket'
$provide.constant 'webSocketTopic', 'name'
使用Grunt任务,或脚本或其他任何东西将其与应用程序脚本连接起来。
答案 2 :(得分:0)
这是我的解决方案:
config.settings = {};
app.get('/settings.js', function(req, res) { res.setHeader('Content-Type', 'application/javascript'); res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); res.setHeader('Pragma', 'no-cache'); res.setHeader('Expires', 0); res.send('window.settings = ' + JSON.stringify(config.settings) + ';'); });
ngular.module('app') .constant('settings', window.settings)