Javascript 强制刷新余烬视图
我有一个带有一堆jquery代码的ember视图来操作dom,当我使用: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
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();
});
}
就我个人而言,我不会推荐任何一种。当视图所依赖的数据发生更改时,视图应自动更新。如果它没有更新,你的观察者可能设置错误。不过我并不知道你的用例,所以请你做出最好的判断