[英]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.