【问题标题】:How to use global variables in Ember app, specifically in index.html?如何在 Ember 应用程序中使用全局变量,特别是在 index.html 中?
【发布时间】:2017-08-03 17:13:08
【问题描述】:

我想使用传入的命令行变量直接修改我的 Ember 应用程序的 index.html。所以我可以在我的 environment.js 文件中的“ENV”下设置它们,然后我可以在我的一些.js 文件通过导入 ENV。但是,在我的 index.html 文件中,即使“rootURL”变量出现,这些变量也不会出现。例如,如果我在 ENV 中设置了rootURL: "/blah"var1: "/blah2",那么如果我有a href={{rootURL}}a href = {{var1}} 之类的东西,那么第一个链接有效,而第二个无效。

所以我假设 {{rootURL}} 不是直接来自 ENV 变量,但我找不到它来自哪里。我试图对我的“app.js”中的变量做类似的事情,但我对这一行感到困惑:import config from './config/environment'; 这到底导入了什么?我在 environment.js 中找不到任何名为“config”的东西。是否可以在该文件(app.js)中设置全局变量?

【问题讨论】:

  • 为什么要修改index.html?我可能错了,但我认为你永远不需要这样做。
  • 你修改index.html的原因是什么?如果要在所有路由中显示任何锚元素,可以修改 application.hbs。

标签: javascript ember.js


【解决方案1】:

我正在使用 ember-cli-inline-content 在我的索引中使用变量,因此我可以根据环境(生产或开发)更改一些 url,以获取此类资产:

<link rel="stylesheet" href="{{content-for 'ASSETS_BASE_URL'}}/xxx/yyy/assets/vendor.css">

在我的ember-cli-build.js 文件中:

if (app.env === 'development') {
  app.options.inlineContent = {
    ASSETS_BASE_URL: {
      content: 'http://lvh.me:8080'
    }
  };
}

if (app.env === 'production') {
  app.options.inlineContent = {
    ASSETS_BASE_URL: {
      content: 'https://assets.mydomain.com'
    }
  };
}

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2015-05-11
    • 2014-07-16
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多