0

私は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");
    }
});

私は何を間違っていますか?

4

1 に答える 1