Javascript 强制刷新余烬视图

Javascript 强制刷新余烬视图,javascript,ember.js,view,frameworks,handlebars.js,Javascript,Ember.js,View,Frameworks,Handlebars.js,我有一个带有一堆jquery代码的ember视图来操作dom,当我使用: this.transitionTo("forecast.workpage", id); 它只加载视图一次,但当我再次尝试单击它时,视图不会再次执行,我尝试了几种方法,例如在didInsertElement末尾添加this.rerender,如下所示: didInsertElement : function(){ //all my js code this.rerender() } 但这是一个错误 Uncaught Ty

我有一个带有一堆jquery代码的ember视图来操作dom,当我使用:

this.transitionTo("forecast.workpage", id);
它只加载视图一次,但当我再次尝试单击它时,视图不会再次执行,我尝试了几种方法,例如在didInsertElement末尾添加this.rerender,如下所示:

didInsertElement : function(){
//all my js code
this.rerender()
}
但这是一个错误

Uncaught TypeError: Cannot read property '0' of undefined 
,尝试添加此。在开始时,相同的结果,是否有方法强制视图从视图本身或路由刷新?还是管制员

编辑:尝试此方法,但没有结果

didInsertElement : function(){      
        this._super();
        Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent);
    },

    afterRenderEvent: function(){

        //$(document).foundation();

        $(".sortables li:even").find('div.row').addClass("gray");


    }

同样,只执行一次,但我单击操作的地方不执行代码。

要重新呈现整个路由页面,可以使用路由的。或者,作为此.rerender失败的可能解决方案,您可以在它第一次呈现后调用它

didInsertElement: function() {
    Ember.run.scheduleOnce('afterRender', this, function() {
        this.rerender();
    });
}
就我个人而言,我不会推荐任何一种。当视图所依赖的数据发生更改时,视图应自动更新。如果它没有更新,你的观察者可能设置错误。不过我并不知道你的用例,所以请你做出最好的判断