0

我想知道渲染任何模板时的事件或其他事件。

<script type="text/x-handlebars" id="dashboard">
    <span>username</span><input type="text" id="username" />
    <span>email addr</span><input type="text" id="email" />
</script>

App.Router.map(function() {
    this.resource('index', { path: '/' }, function() {});
    this.resource('dashboard', {path: '/dashboard'}, function() {});
});

App.DashboardController = Ember.ObjectController.extend({})

App.DashboardRoute = Ember.Route.extend({
  renderTemplate: function() {
    this.render('dashboard', {   // the template to render
      controller: 'dashboard'        // the controller to use for the template
    }); 
  }
});

示例.js

function clearObj(){
  $("#username").val("");
  $("#email").val("");
}

我将在呈现仪表板模板时运行 clearObj() 函数。我必须使用哪个事件或功能?

我可以通过在地址栏 /#/dashboard 上键入或单击某个按钮等来转到仪表板模板。

4

1 回答 1

1

怀特可能有帮助是afterRender一个观点的钩子。当这个钩子运行时,你可以确定所有东西都被渲染到了 DOM 中。

例如订阅钩子didInsertElement并安排调用afterRender

App.DashboardView = Ember.View.extend({
  didInsertElement: function() {
    Ember.run.scheduleOnce('afterRender', this, 'processChildElements');
  },

  processChildElements: function() {
    $("#username").val("");
    $("#email").val("");
  }
});

希望能帮助到你。

于 2013-07-12T07:57:18.030 回答