【问题标题】:Template Rendering in EmberJsEmberJs 中的模板渲染
【发布时间】:2013-07-12 07:47:37
【问题描述】:

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

<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 上键入或单击某些按钮等来转到仪表板模板。

【问题讨论】:

    标签: jquery templates events ember.js handlebars.js


    【解决方案1】:

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

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

    App.DashboardView = Ember.View.extend({
      didInsertElement: function() {
        Ember.run.scheduleOnce('afterRender', this, 'processChildElements');
      },
    
      processChildElements: function() {
        $("#username").val("");
        $("#email").val("");
      }
    });
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      相关资源
      最近更新 更多