试图绕过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添加到供应商文件即可。可悲的是,我错过了一些东西。
答案 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