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

时间:2016-05-09 08:19:47

标签: javascript ember.js

目前正在与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路径文件。

任何信息都会非常感谢。

1 个答案:

答案 0 :(得分:0)

从组件向路径发送操作。 Route将从服务器检索数据,并在检索数据后,路由将更新数据。

路由可以处理加载状态。 (From Guide

代码将是这样的:

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);});
      }
  }
});