gpt4 book ai didi

javascript - 强制刷新 ember View

转载 作者:行者123 更新时间:2023-11-28 07:57:19 24 4
gpt4 key购买 nike

我有一个 ember View ,里面有一堆 jquery 代码来操作 dom,问题是当我使用时:

this.transitionTo("forecast.workpage", id);

它只加载 View 一次,但是当我再次尝试单击它时, View 不会再次执行,我尝试了几种方法,例如在我的 didInsertElement 末尾添加 this.rerender() ,如下所示:

didInsertElement : function(){
//all my js code
this.rerender()
}

但它会引发错误

Uncaught TypeError: Cannot read property '0' of undefined 

,尝试在开头添加 this._super() ,结果相同,有没有办法强制 View 从 View 本身或路由刷新?或 Controller ?

编辑:尝试这种方法没有结果...

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

afterRenderEvent: function(){

//$(document).foundation();

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


}

同样的事情,执行一次,但我点击操作的地方不执行代码。

最佳答案

要重新渲染整个路线(页面),可以使用路线的 refresh method 。或者,作为 this.rerender() 失败的可能解决方案,您可以在第一次渲染之后调用它。

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

就我个人而言,我不会推荐其中任何一个。当您的 View 所依赖的数据发生变化时,它应该自动更新。如果它没有更新,你的观察者可能设置错误。 (虽然我不太了解您的用例,所以请使用您的最佳判断。)

关于javascript - 强制刷新 ember View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25927159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com