Ember组件中的异步加载

nullnullnull

我在表单中有一个自动完成组件。插入组件后,我运行此函数:

  setSearchInput: (->
    username = @get 'targetObject.user.username'
    @set('searchInput', username)
  ).on('didInsertElement')

在这种情况下,targetObject是表单,可以访问内容模型的related user此时,user可能尚未加载。通常,这将提示Ember-Data查询服务器并返回承诺。但是,在这种情况下,它不会返回承诺。它返回未定义。但是,如果我强迫Ember暂停一秒钟,它将返回预期的结果:

  setSearchInput: (->
    window.setTimeout =>
      username = @get 'targetObject.content.user.username'
      @set('searchInput', username)
    , 1000
  ).on('didInsertElement')

如果在上设置断点,也会遇到类似的情况@set('searchInput', username)username将是不确定的,但是如果我@get 'targetObject.content.user.username'在这一点上运行,它将返回预期的结果。

知道发生了什么吗?Ember-Data仍处于测试阶段,所以也许这是一个错误?还有其他人遇到过这种行为吗?

劲派2k

我要假设用户belongsTo在这里是一个异步对象(如果不是,您将需要显示那里的内容,因为我不得不猜测),并且我将使用javascript(抱歉,如果我用coffeescript来做,这可能会使您更加困惑;))

setSearchInput: function(){
  var self = this; 
  this.get('targetObject.user').then(function(user){
    self.set('searchInput', user.get('username'));
  });
}.on('didInsertElement')

示例:http//emberjs.jsbin.com/OxIDiVU/691/edit

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在反应虚拟化中异步加载组件?

来自分类Dev

加载时重置Ember组件

来自分类Dev

在 Laravel 上异步加载 Vue 组件

来自分类Dev

Ember:访问Ember组件中的数据存储

来自分类Dev

AngularJS - 组件中的异步绑定

来自分类Dev

Ember组件中的共享状态

来自分类Dev

在组件中操纵Ember模型

来自分类Dev

在组件中操纵Ember模型

来自分类Dev

Ember this 在组件的组件中未定义

来自分类Dev

在UITableViewCell中异步加载图像

来自分类Dev

gtkmm中的图像异步加载

来自分类Dev

在TableView中异步加载图像

来自分类Dev

在uitableview中异步加载照片

来自分类Dev

Ember中基于异步数据的计算属性

来自分类Dev

模板中的Ember-data异步模型

来自分类Dev

模板中的Ember-data异步模型

来自分类Dev

当组件异步内容完全加载时反应微调器

来自分类Dev

使用Ember在侧边栏中加载和卸载多个组件

来自分类Dev

如何处理组件中的异步输入?

来自分类Dev

nuxt js中的异步组件延迟

来自分类Dev

循环出 vue 组件中的异步数据

来自分类Dev

如何在 React 中删除异步组件?

来自分类Dev

子目录中的Ember组件

来自分类常见问题

Ember.js中的视图与组件

来自分类Dev

在Ember组件测试中模拟用户输入

来自分类Dev

组件中的Ember值未绑定

来自分类Dev

在Ember Controller中包含凉亭组件

来自分类Dev

在Ember组件中删除观察者

来自分类Dev

在Ember 2.0中创建原始HTML组件