在ember.js应用程序中处理JavaScript脚本标记小部件

时间:2014-07-10 21:00:37

标签: javascript ember.js

ember.js应用程序中的句柄模板位于"脚本"标签。第三方小部件,广告以及诸如此类通常是另一个"脚本"哪个文件在它插入的地方写了一些东西。

带有脚本标记的脚本不起作用,那么有没有办法在ember应用程序中处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

为了编写可维护的DRY代码,应使用ember-clibrunch之类的构建工具构建任何实际大小或重要性的Ember应用程序。这些构建工具将从多个目录编译应用程序文件(包括模板和供应商文件)。我将介绍这些内容,然后我将介绍几种可以在不使用构建工具的情况下包含小部件/脚本的方法。

1)虽然Ember指南向您展示了如何使用script标签定义模板,但这不是管理应用程序模板的有效或有效方法(除非您正在构建用于学习目的的应用程序或JSbin演示等,当您需要将所有内容放在单个文件中时)。上面提到的构建工具使用解析器来查看文件目录并将模板编译到Ember.TEMPLATES对象,这是您的应用程序无论如何都可以访问它们的对象。

这些构建工具通常具有单独的目录,用于放置供应商文件(例如,第三方小部件),这些目录通常会被观察以进行更改并编译为vendor.js文件,该文件包含在{{1页面。您还可以使用NPM和Bower等依赖关系管理工具来简化此过程。在这两种情况下,插件方法都可以在整个应用程序中访问。

2)如果确实不想使用构建工具,那么只需在index.html页面上添加script标记即可在结束index.html标记之前,可以在应用程序内的body对象上访问任何方法。如果您尝试在页面上的特定位置放置类似社交分享按钮的小部件,这显然无效。

3)当您不使用构建工具时,另一种方法是在{{window方法中运行$.getScript()方法(see here) 1}}事件。这可能是在模板中的特定位置包含类似于小部件的脚本的最佳方式。在视图中,您可以使用didInsertElement来定位模板内的特定元素,或this.$().find('.some-selector')来定位视图的元素本身。

更多信息: