【发布时间】:2014-07-21 13:12:33
【问题描述】:
我正在测试 forms-angular (http://www.forms-angular.org/)。
我在index.js 文件中定义了一个DataFormHandler 变量。而且我还需要在我的控制器中获取这个变量。我怎样才能得到它?这个设置器不起作用app.set("formHandler", DataFormHandler)。
代码如下:
index.js
'use strict';
var formsAngular = require('forms-angular'); // require formsAngular
var kraken = require('kraken-js'),
app = require('express')(),
options = {
onconfig: function (config, next) {
//any config setup/overrides here
next(null, config);
}
},
port = process.env.PORT || 8000;
// Here I initialize FormHandler. It requires the app, so I initialize it here, in index.js
// HOW TO GET THIS VAR IN CONTROLLERS?
var DataFormHandler = new (formsAngular)(app);
app.set("fh", DataFormHandler); // THIS DOESN'T WORK. UNDEFINED in controller
app.use(kraken(options));
app.listen(port, function (err) {
console.log('[%s] Listening on http://localhost:%d', app.settings.env, port);
});
二传手app.set("fh", DataFormHandler) 不起作用。当我尝试从控制器中获取fh 时,它是undefined:
app\controllers\index.js
'use strict';
var UserModel = require('../models/user');
module.exports = function (router) {
var user = new UserModel();
router.get('/', function (req, res) {
var DataFormHandler = req.app.get("fh");
DataFormHandler.addResource('user', UserModel);
console.log("DataFormHandler", DataFormHandler); // undefined
var model = {
hello: "Hello"
}
res.render('index', model);
});
};
如何在控制器中获取变量?
【问题讨论】:
标签: javascript angularjs express kraken.js