繁体   English   中英

从Ember对象过渡到路线的动作

[英]Transition to route's action from Ember object

我是炭烬新手。 我有一个现有的Ember App,我需要在其中实现功能。 我有一个Ember对象,如下所示

`import Ember from 'ember'`

CallService = Ember.Object.extend

 ... other code here

 _updateConnectedLeadId: (->
    console.log "Do i get here??"

    **pass the route action here**

  ).observes('some_other_here')
`export default CallService`

不幸的是,我无法将整个代码放在这里。

我的路线看起来像

ApplicationRoute = Ember.Route.extend
  actions:
    showLead: ->
      console.log data
      console.log "did i get here?"
      @transitionTo('dashboard')

`export default ApplicationRoute`

我尝试在我的方法中使用@send('showLead')@sendAction('showLead') ,但是没有运气。

我的主要目的是在console.log "Do i get here??"进行过渡。 被陈列。 我不确定在这里我走的路是否正确。

我也尝试过直接使用@transitionTo('dashboard')@transitionToRote('dashboard') ,但这会引发错误。

我已经为此停留了一天,我一无所知。

如有任何指导和帮助,我将不胜感激。 谢谢

您有一个问题,您试图从名为call service的Ember.Object内触发路由操作或触发转换。 您创建的代码不清楚自定义对象的创建位置。 由于更改了对象的属性更新而触发了观察者的位置,依此类推。

不过,我试图为您提供一个可行的例子 如果打开旋转按钮,您将看到我在index.js路由中创建了一个my-object实例,并将其作为model传递给my-component 单击my-component.hbs的按钮时。 将切换my-object实例dummyVariable并执行my-object内的观察者。 这里最棘手的部分是我将index路由本身作为ownerRoute属性传递给了my-object实例; 这样我就可以从my-object.js内触发index路由的dummyAction

ownerRoute.send('dummyAction');

以便执行相关操作并执行到my-route转换。 虽然,我相信这可能会解决您的问题; 我对设计不太满意。 我认为这不是Ember.Objects了解路由,动作,控制器等的好方法。我相信正确的方法是从此构造中观察对象的相关属性,并自行执行必要的动作。 此外,您可以考虑创建service而不是对象,并将服务直接注入到路由中,而不是创建扩展Ember.Object的类的实例。 如果必须从Ember.Object扩展, Ember.Object可以根据需要通过使用实例初始化器将相关的路由,控制器等注入该特定对象类的实例

无论如何,请看看旋转的感觉,并询问更多是否需要。 如果可以的话,我很乐意提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM