Angular 常量 - MEANJS

Angular Constant - MEANJS

编辑: 代码中的错误输入已修复。

我正在使用 MEANJS 堆栈,默认情况下它带有一个 default.js 文件,其中包含一些信息如下:

module.exports = {
  app: {
    title: 'My App Title',
    description: 'My apps description',
    keywords: 'some keywords',
    googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
  }
};

它通过 swig 模板引擎出现在应用程序模板中。例如:

<title>{{title}}</title> 

打印:

<title>My App Title</title>

更改此值也按预期工作。

但是如果我添加我自己的变量它不识别它,所以:

module.exports = {
  app: {
    title: 'My App Title',
    description: 'My apps description',
    keywords: 'some keywords',
    googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
    new_title: 'My Apps New Title',
  }
};

然后将视图更改为:

<title>{{new_title}}</title> 

打印:

<title></title>

这些变量是否在我错过的其他地方注册/传递了?

它是一个 JSON 对象。您在代码中使用 = 而不是 :

module.exports = {
  app: {
    title: 'My App Title',
    description: 'My apps description',
    keywords: 'some keywords',
    googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
    new_title : 'My Apps New Title' //Here
  }
};

无法识别该变量,因为尽管它已在您的配置文件中定义,但您必须在 express locals 对象中设置它。

如果您访问 express.js 配置文件,位于 /config/lib/,您可以找到此代码块:

/**
 * Initialize local variables
 */
module.exports.initLocalVariables = function (app) {
    // Setting application local variables
    app.locals.title = config.app.title;
    app.locals.description = config.app.description;
    if (config.secure && config.secure.ssl === true) {
        app.locals.secure = config.secure.ssl;
    }
    app.locals.keywords = config.app.keywords;
    app.locals.googleAnalyticsTrackingID = config.app.googleAnalyticsTrackingID;
    app.locals.facebookAppId = config.facebook.clientID;
    app.locals.jsFiles = config.files.client.js;
    app.locals.cssFiles = config.files.client.css;
    app.locals.livereload = config.livereload;
    app.locals.logo = config.logo;
    app.locals.favicon = config.favicon;
    ...
};

这就是它发生的地方。为了让您的配置变量可用于您的应用程序模板,只需添加以下行:

app.locals.new_title = config.app.new_title;

有关 express app locals 对象的更多信息,您可以查看官方 express 文档 here