Ember我如何知道路由模板何时完成加载并触发回调

Ember how do I know when a route template is finished loading and fire a callback?

本文关键字:加载 回调 何时完 何知道 路由 Ember      更新时间:2023-09-26

目前正在与Ember一起开发聊天应用程序,这非常棒,因为与Ember合作真的很好。

我现在有一个聊天窗口,显然有很多人在聊天。

我想在初始页面加载时向下滚动聊天窗口,这里有一个例子:

<div class="chat-window">
    {{ chat-message username="John Doe" message="Blah" dispic="unknownUser.jpg" }}
</div>

那么,如何将事件绑定到正在加载的整个模板(在本例中为index.hbs

我知道你可以通过以下方式对组件进行处理:

import Ember from 'ember';
export default Ember.Component.extend({
  didInsertElement() {
    this.$('.button-collapse').sideNav();
  }
});

这很好用,那么对模板做这件事的等价物是什么呢。

据我所知,只有index.hbsindex.js路由文件。

任何信息都将不胜感激。

将操作从组件发送到路由。路由将从服务器检索数据,检索到数据后,路由将更新数据。

路由可以处理加载状态。(来自指南)

代码是这样的:

import Ember from 'ember';
export default Ember.Route.extend({
  chatData:[],
  model:function(){
      return this.get('chatData'); 
  },
  actions:{
      loading:function(){
         //do about loading...
      },
      chatDataRequested:function(){
          retrieveData().then((dataFromServer)=>{this.set('chatData',dataFromServer);});
      }
  }
});