首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角常数- MEANJS

角常数- MEANJS
EN

Stack Overflow用户
提问于 2015-12-04 15:22:53
回答 2查看 159关注 0票数 0

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

我使用的是MEANJS堆栈,默认情况下它附带一个default.js文件,其中包含一些信息,如下所示:

代码语言:javascript
复制
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模板引擎出现在应用程序模板中。例如:

代码语言:javascript
复制
<title>{{title}}</title> 

指纹:

代码语言:javascript
复制
<title>My App Title</title>

更改此值也会像预期的那样工作。

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

代码语言:javascript
复制
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',
  }
};

然后将视图更改为:

代码语言:javascript
复制
<title>{{new_title}}</title> 

指纹:

代码语言:javascript
复制
<title></title>

这些变量是否已注册/传递到我遗漏的其他地方?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-07 12:15:25

变量不能被识别,因为尽管在您的配置文件中定义了变量,但是您必须在express对象中设置它。

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

代码语言:javascript
复制
/**
 * 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;

有关快捷应用局部变量对象的更多信息,您可以查看官方的速递文档这里

票数 1
EN

Stack Overflow用户

发布于 2015-12-04 16:38:31

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

代码语言:javascript
复制
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
  }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34091645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档