1

私はDjangoが提供するWebサイトを運営していますが、ほとんどすべてのロジックがサーバー側に存在します。ただし、AJAX中心のページ(コメントページなど)がいくつかあり、時間の経過とともに、そのようなページは、複数のネストされたAJAXコールバックと、大量のDOM操作を伴う乱雑になりすぎています。

メンテナンスが難しいので、Emberjsを試してみることにしました。

すべてのJSを1つの縮小ファイルに圧縮して提供するため、それらを必要とするページによってのみリンクされる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

1つのアプローチは、minispadeやrequire.jsなどのモジュールシステムを使用し、必要なページで「メイン」のemberアプリモジュールのみを必要とすることです。メインモジュールはrequire、emberアプリケーションおよびその他のコアモジュールであるモジュールになります。

于 2012-09-15T12:13:11.207 に答える