Ember JS-在组件完全呈现后应用jQuery

Ember JS-在组件完全呈现后应用jQuery,jquery,ember.js,Jquery,Ember.js,我是ember的初学者,试图实现一个jQuery块,以0.5秒的延迟一个接一个地显示我的对象 我当前显示余烬对象的代码如下所示 {{#if isBusy}} <div>Loading..</div> {{else}} {{#if areLeads}} {{#each lead in leads}} <div>lead.title</div> {{/each}} {{else}} <div>

我是ember的初学者,试图实现一个jQuery块,以0.5秒的延迟一个接一个地显示我的对象

我当前显示余烬对象的代码如下所示

{{#if isBusy}}
  <div>Loading..</div>
{{else}}
  {{#if areLeads}}
    {{#each lead in leads}}
      <div>lead.title</div>
    {{/each}}
  {{else}}
    <div>No Leads</div>
  {{/unless}}
{{/if}}
但是,一旦页面开始加载,就会弹出警报。我不太了解余烬的概念,也不太了解余烬

请指导我如何进行,并让我知道我是否应该提供其他细节。感谢您的帮助。谢谢

更新

我最终得到了以下代码

 _animateLeads: Ember.observer 'leads', ->
     if @get('leads')
         $('li.leads-list-lead').each (i) ->
           $(this).fadeOut(1000).delay(2000*i).fadeIn(2000);
           return

 _animateOnInsert: (->
   Ember.run.scheduleOnce('afterRender', @, @_animateLeads)
 ).on('didInsertElement')
但以下仅在对
导联进行更改时有效。最初,当页面加载时,潜在客户不会像预期的那样出现,即。以生动活泼的方式。以下方法也有效,但同样,仅当
导联更改时有效

_animateLeads: (->
    if @get('leads')
      $('li.leads-list-lead').each (i) ->
        $(this).fadeOut(1000).delay(2000*i).fadeIn(2000);
).observes('leads')
解决方案

最后,我混合了我在上面所做的适合我的工作,得到了下面的代码

  _animateLeads: (->
    Ember.run.scheduleOnce('afterRender', @, @_animateActiveLeads)
  ).observes('leads')

  _animateActiveLeads: (->
   if @get('leads') && @get('leadDisplay') == 'active'
     $('li.is-online').each (i) ->
       $(this).fadeOut(0).delay(1000*i).fadeIn(1850);
  )

我还提出了一个类似的问题,这在我之前的搜索中没有出现。这个被接受的答案对我有效

您需要了解的是。这是一个异步调用。这并不意味着在插入元素后,它就准备好了。它可能需要0.5秒、1秒、5秒

您还应该研究一下,因为它使这种wokr更加容易

因此,你应该这样做:

leads: this.get('store').findAll('leads').then(function(leads) {
   //loaded
})

此外,如果您正在寻找动画,请查看需要查看的内容。这是一个异步调用。这并不意味着在插入元素后,它就准备好了。它可能需要0.5秒、1秒、5秒

您还应该研究一下,因为它使这种wokr更加容易

因此,你应该这样做:

leads: this.get('store').findAll('leads').then(function(leads) {
   //loaded
})

另外,如果您正在查找动画,请查看您可能正在查找的组件挂钩是
afterRender
,它将允许您在DOM渲染后访问DOM。如果您将所有div元素作为隐藏元素加载,然后使用jQuery显示它们,您应该大致了解您想要的内容


目前,
liquid fire
(在Ember中转到动画加载项)对动画列表没有帮助。有一个未来的底层库设计为在液态火()下运行,它支持它,但它甚至还不是alpha。如果你刚刚开始使用灰烬,那么现在最好避开它 您可能正在寻找的组件挂钩是
afterRender
,它将允许您在DOM渲染后访问DOM。如果您将所有div元素作为隐藏元素加载,然后使用jQuery显示它们,您应该大致了解您想要的内容


目前,
liquid fire
(在Ember中转到动画加载项)对动画列表没有帮助。有一个未来的底层库设计为在液态火()下运行,它支持它,但它甚至还不是alpha。如果你刚刚开始使用灰烬,那么现在最好避开它。。。我相信问题是在数据加载后如何在元素列表中设置动画…我恐怕不明白你的意思。然而,@acorncom对动画的理解是正确的。我相信问题是在数据加载后如何在元素列表中设置动画……恐怕我不明白你的意思。然而,@acorncom对动画的描述是正确的。您对
afterRender
的描述是正确的,正如您所看到的,这是最初尝试的。然而,我改变了一些零碎的东西,并且能够使它工作。尽管面临着另一个问题。过一会儿我会发布我的代码。你能看看更新后的代码和描述吗?ThanksI后来发现,通过
afterRender
,您的意思是将其作为一种类似
\u animateLeads
的方法。不管怎样,我发现上面的解决方案对我来说是可行的。谢谢你的指导。谢谢你!很高兴听到这个消息!还有两件事。1.看起来你在用咖啡脚本?余烬社区的共识是,既然ES6提供了许多相同的好处,那么此时可能应该避免使用CoffeeScript。2.如果你不介意在这里接受我的答案,它将帮助我提高水平,这样我可以更好地帮助人们学习余烬:-):D当然是为了接受答案。关于CoffeeScript的使用,我实际上是在对现有项目进行更改,无法避免使用它。不过,当我从头开始工作的时候,我会记住这个提示。谢谢如果不多,你可以看看其他问题吗。我成功了,但不明白原因。如果你能帮忙,那就太好了。感谢您在渲染后的
问题上说得对,正如您所看到的,这正是最初尝试的。然而,我改变了一些零碎的东西,并且能够使它工作。尽管面临着另一个问题。过一会儿我会发布我的代码。你能看看更新后的代码和描述吗?ThanksI后来发现,通过
afterRender
,您的意思是将其作为一种类似
\u animateLeads
的方法。不管怎样,我发现上面的解决方案对我来说是可行的。谢谢你的指导。谢谢你!很高兴听到这个消息!还有两件事。1.看起来你在用咖啡脚本?余烬社区的共识是,既然ES6提供了许多相同的好处,那么此时可能应该避免使用CoffeeScript。2.如果你不介意在这里接受我的答案,它将帮助我提高水平,这样我可以更好地帮助人们学习余烬:-):D当然是为了接受答案。关于CoffeeScript的使用,我实际上是在对现有项目进行更改,无法避免使用它。不过,当我从头开始工作的时候,我会记住这个提示。谢谢如果不多,你可以看看其他问题吗。我成功了,但不明白原因。如果你能帮忙,那就太好了。谢谢