2013-07-12 256 views
0

我想知道任何模板呈现时的事件或其他人。EmberJs中的模板呈现

<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 
    }); 
    } 
}); 

sample.js

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

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

我可以通过键入在地址栏/#/仪表板或点击一些按钮等

回答

1

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

例如订阅钩在didInsertElement和呼叫安排到afterRender

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

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

希望它能帮助。

+0

它工作得很好:) –