gpt4 book ai didi

javascript - ember js,当用户访问页面时,不断调用 Controller 中的init方法

转载 作者:行者123 更新时间:2023-11-30 09:35:06 24 4
gpt4 key购买 nike

我在 ember 中有一个 Controller 脚本,我在 Controller 中使用 init() 方法。这是我的脚本

export default Ember.Controller.extend({
.....,
init() {
this._super(...arguments);
this.set('idUser', this.commonService.getUser().id);
Ember.$(document).ready(function () {
let height = Ember.$(window).height() - 96;
Ember.$(".feed-activity-list").slimScroll({
height: height.toString() + "px"
});
});
},
})

当用户第一次打开页面时调用init方法。但是当用户打开另一个页面并返回到该页面时, Controller 不会调用 init() 方法。当用户访问此页面时如何强制 Controller 运行 init 方法。我避免使用组件,因为它很难重构 :(

最佳答案

Controller 是单例的,所以只有一次 init 会被调用。您可以使用相应的路由 activate Hook 或 didTransition Hook 。但不能保证 DOM 准备就绪。您可能需要使用 Ember.run.nextEmber.run.later('afterRender', () => { })
使用 component 是 ember 的最佳实践。

关于javascript - ember js,当用户访问页面时,不断调用 Controller 中的init方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041462/

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