我想在页面上添加一些需要在页面呈现后加载的jQuery代码?
包含在ember-cli中的最佳方式是什么?
我们是否需要创建一个新的自定义js文件并使用app.import导入该js文件?
非常感谢。
答案 0 :(得分:7)
您通常希望在Ember.View
或Ember.Component
内完成此操作。这两个都实现了一个didInsertElement
钩子,您可以使用它来在呈现后访问DOM元素。
以下是一个例子:
export default Ember.View.extend({
didInsertElement: function() {
// this.$() is a scoped selector to the current view
this.$().yourJqueryFunction();
}
}
这是推荐的做法,因为您可以保证当时存在DOM。如果你只是在加载app js后使用jQuery函数,它很可能它不会出现在屏幕上,所以它不会被调用。您也可能不在使用此jQuery代码的路径上,然后导航到它。此时它不会被正确触发
您可以将js文件放在vendor/
文件夹中,并使用app.import
API在构建时将其导入vendor.js
文件。这样做的主要缺点是您无法直接访问您的ember应用程序或ES6模块或您的插件可能添加的其他内容。