如何在ember-cli环境中定义全局变量



我正在将我的ember应用程序移植到ember-cli。我有一个我正在使用的顶级函数,它像var fooBar = function(a) { };一样定义。

我把它移到了app/utils/foo-bar.js(它都在js/app.js中),并在文件末尾添加了export default fooBar;

我认为如果我使用的地方可以进行导入,那就好了,但由于我不想进入的原因,我需要定义为全局变量。

但我仍然希望它在app/utils/中,并能够导入它,因为我可能会重写它,从而使我有朝一日需要它成为一个全球性的。

有没有办法在我的index.html中有一个<script>标签,它可以查找模块并将其分配给全局变量?

编辑:

我想要全局化的forBar函数需要通过import语句引用另一个变量。但在/vendor中,我不能使用defineimport

所以,把它放在/vendor中,只会让我回到同样的问题,但对于不同的变量。

一个巧妙的解决方法是将其放在/vendor文件夹中的一个文件中,然后再放在该文件的app.import中。这将把它添加到vendor.js文件中,使全局在浏览器上下文中可用。

好吧,我想我找到了答案。

<script type="text/javascript">
    var fooBar = require(['path/to/foo-bar']).default;
</script>

我没有意识到ember-cli正在使用requirejs,一旦我发现了这一点,我就意识到这实际上是一个requirejs问题。

最新更新