1

我运行一个由 Django 服务的网站,几乎所有的逻辑都存在于服务器端。但是,我有一些以 AJAX 为中心的页面(例如评论页面),随着时间的推移,这些页面变得过于混乱,有多个嵌套的 AJAX 回调和繁重的 DOM 操作。

它太难维护了,所以我决定试试 Emberjs。

我想避免一些 JS 文件仅由需要它们的页面链接,因为我将所有 JS 压缩在一个我提供的缩小文件中。

如果我不需要,有没有办法不初始化 Emberjs?

例如,这里有一些 HTML:

<p>
  I don't need ember in this page!
</p>​

还有一些JS:

App = Ember.Application.create({
    rootElement: "hello"
});
Ctrl = Ember.ArrayController.create({
    content: [],
    init: function() {
        alert("Ember is initialized anyway.");
    }
});​

小提琴:http: //jsfiddle.net/JYvSE/

alert我的控制器的init功能被执行。我可以把它放在我的 HTML 中:

<div id="ember-enabled"></div>

然后在我的控制器中我可以这样做:

if($('#ember-enabled') === undefined) return;

但这会让我省去控制器代码,而不是 Emberjs 初始化。

关于如何解决这个问题的任何建议?谢谢!

4

1 回答 1

2

一种方法是使用像 minispade 或 require.js 这样的模块系统,并且只在您想要的页面上需要您的“主”ember 应用程序模块。主模块是requireember 应用程序和其他核心模块。

于 2012-09-15T12:13:11.207 回答