3

私はember.js/railsアプリケーションを構築しています。すべてのハンドルバーテンプレートは.jsファイルに保存されます。ルータの状態が変化したときに、それらがどのようにDOMに挿入されるかを理解したいと思います。 残り火のどの部分がこれを行いますか? テンプレートを配置するように残り火に指示するにはどうすればよいですか?

現在、テンプレートを追加することしかできません。ここ<body>jsFiddleがあります。

rootElementEmber.Applicationの設定を認識していますが、アプリでページの他の要素を制御したいと思います。

ハンドルバー/HTML

<script type="text/x-handlebars" data-template-name="application">
    <h2>I'm the content</h2>
    <p>This should be inbetween the header &amp; footer</p>
    <p><strong>time</strong> {{time}}</p>
</script>

<header>
    <h1>Application</h1>
</header>
<article>
    <div id="content"></div>
</article>
<footer>
    <a href="http://blog.deanbrundage.com" target="_blank">by Dean</a>
</footer>

JavaScript

window.App = Ember.Application.create();

App.Router = Em.Router.extend({
    initialState: 'root.home',
    root: Em.Route.extend({
        home: Em.Route.extend({
            view: App.ApplicationView
        })
    })
});

App.ApplicationController = Em.Controller.extend({
    time: Date()
});
App.ApplicationView = Em.View.extend({
    templateName: 'application'
});

App.initialize();
4

2 に答える 2

5

Ember.jsの現在の実装は、アプリケーションApplicationViewのにを追加します。ここを参照してください。rootElement

考えられる解決策の1つは、のを上書きすることです。http ://jsfiddle.net/pangratz666/m8L6Z/を参照appendToしてください。ApplicationView

JavaScript

App.ApplicationView = Em.View.extend({
    templateName: 'application',
    appendTo: function(){
        this._super('#content');
    }
});
于 2012-07-02T16:55:17.223 に答える
1

マスターを使用している場合、テンプレートの挿入と変更はアウトレットを介して処理されます。公式ガイドをご覧ください。

古いバージョンのEmberを使用している場合、それはより手動のプロセスです。

于 2012-06-25T01:44:19.047 に答える