我运行一个由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/
我的控制器的init函数中的alert被执行。我可以将以下内容放入我的HTML中:
<div id="ember-enabled"></div>然后在我的控制器中,我可以这样做:
if($('#ember-enabled') === undefined) return;但这将省去控制器代码,而不是Emberjs初始化。
对如何解决这个问题有什么建议吗?谢谢!
发布于 2012-09-15 20:13:11
一种方法是使用像minispade或require.js这样的模块系统,并且只需要在你想要的页面上使用你的“主”ember应用模块。主要模块将是require的ember应用程序和其他核心模块。
https://stackoverflow.com/questions/12435834
复制相似问题