ember.js包括自定义js

时间:2017-04-06 15:11:51

标签: javascript ember.js

试图绕过Ember.js。 似乎我理解复杂的事情,但错过了小事。

如何添加example.js文件呢? 为简单起见,假设example.js文件仅包含:

(function(){
  console.log("example is alive in console");
})(window);

这应该在浏览器控制台中显示“示例在控制台中存活”。

我试过了: 在ember-cli-build.js中添加app.import('vendor/javascripts/example.js');并将<script src="{{rootURL}}vendor/javascripts/example.js"></script>添加到index.html

控制台正在显示

  

ⓧGEThttp://localhost:4200/vendor/javascripts/example.js
  调查:-------------------------------
  调查:恩伯:2.11.3
  调查:Ember数据:2.12.1
  DEBUG:jQuery:3.2.1
  调查:-------------------------------
  ⓧ获得http://localhost:4200/vendor/javascripts/example.js

我发现的所有答案都表明只需将custom.js添加到供应商文件即可。可悲的是,我错过了一些东西。

3 个答案:

答案 0 :(得分:1)

当我/vendor目录中嵌套资源时,这对我有用。 ember-cli构建过程将/vendor中的JS文件捆绑到一个vendor.js文件中,您可以在app/index.html中看到该文件。因此,将example.js文件放在/vendor root 上,然后将导入添加到ember-cli-build.js

app.import('vendor/example.js`);

现在,当您启动服务器时,example.js中的代码应该会执行,因为它将包含在assets/vendor.js中。

答案 1 :(得分:1)

修改ember-cli-build.js时,必须手动重启ember服务器。 livereload服务器不会接收更改。

答案 2 :(得分:-1)

首先,Ember.js采用Convention Over Configuration方法,您的URL可以做很多事情,而不是普通的HTML网站。

无论你想用你的custom.js文件做什么,它都没有把它作为一个路径。您需要routes才能在整个应用中进行导航。虽然路线不仅仅是导航。您可以使用Router's文件中的map app/router.js功能指定用户可以浏览的应用结构。

但是,如果您想在应用中包含custome.js文件,并让custom.js为您的应用执行一些任务。您可以直接创建一个名为javascript的目录,例如app目录中的目录。将您的javascript文件放在其中。然后您可以像引用ember中的任何其他文件一样导入这些文件:

import customObject from 'yourApp/javascript/custom.js';

此处,您的custom.js应该导出customObject

如果您想了解更多信息,请阅读guides。如果您真的想了解更多信息,请API docs

注意:在撰写此答案时,当前的ember-cli版本为@ 2.12.0