私はemberjsにかなり慣れていないので、didInsertElementイベントを利用しようとしたときに問題に遭遇しました。
ハンドルバー テンプレートが実際にレンダリングされていることを確認できる JSFiddle を作成しましたが、ApplicationView と HomeView の両方で didInsertelement イベントが呼び出されていません。
JSFiddle: http://jsfiddle.net/QZZFY/3/
または、リンクがダウンした場合、私のコード:
html:
<script type="text/x-handlebars" data-template-name="container">
<!-- Imagine theme header content here -->
{{outlet "leftContent"}}
<!-- some more code here -->
{{outlet "pageContent"}}
<!-- and here -->
{{outlet "rightContent"}}
<!-- and a footer here -->
</script>
<script type="text/x-handlebars" data-template-name="leftSidebar">
<p>A left sidebar</p>
</script>
<script type="text/x-handlebars" data-template-name="rightSidebar">
<p>A right sidebar</p>
</script>
<script type="text/x-handlebars" data-template-name="homepageContent">
<p>This is the {{pageTitle}}!</p>
</script>
Javascript:
Ember.LOG_BINDINGS = false;
MyApp = Ember.Application.create();
MyApp.Router.map(function() {
//Home Page
this.route("home", { path: "/" });
});
//=======================
//= ROUTES =
//=======================
MyApp.ApplicationRoute = Ember.Route.extend({
renderTemplate: function() {
this.render("container");
this.render('leftSidebar', { outlet: 'leftContent', into: 'container' });
this.render("rightSidebar", { outlet: 'rightContent', into: 'container' });
}
});
MyApp.HomeRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('pageTitle', "homepage");
},
renderTemplate: function() {
this.render('homepageContent', { outlet: 'pageContent', into: 'container' });
}
});
//=======================
//= CONTROLLERS =
//=======================
MyApp.ApplicationController = Ember.Controller.extend();
MyApp.HomeController = Ember.Controller.extend();
//=======================
//= VIEWS =
//=======================
MyApp.ApplicationView = Ember.View.extend({
didInsertElement: function(event) {
console.debug("Applicationview didInsertElement() called");
}
});
MyApp.HomeView = Ember.View.extend({
didInsertElement: function(event) {
console.debug("Homeview didInsertElement() called");
}
});
私は何を間違っていますか?