永続的なビューを備えたシンプルなアプリを構築しています。このビューは常にあります。ビューはいくつかのデータに依存します。別の状態でアプリケーションに入ると、ビューがそのデータとともに存在することを確認する必要があります。connectOulet
これを行う最良の方法は、データとビューを接続するために呼び出す初期状態を作成することだと思いました。そうすれば、後続のすべての状態がこの状態を移行する必要があります。接続後にルーターを自動的に次の状態に移行させる方法がわかりません。
これが私のルーターです(これはATMでは機能しません)。コメントを参照してください。
Inbox.Router = Ember.Router.extend
enableLogging: true
location: "history"
initialState: "bootUp"
bootUp: Ember.Route.extend
root: Ember.Route.extend
route: '/'
# All states need to transition through this code
# How can I transition to root state after this code executes?
connectOutlets: (router, context) ->
router.get('applicationController').connectOutlet
outletName: "list"
name: "messages"
context: Inbox.store.findAll(Inbox.Message)
root: Ember.Route.extend
showMessage: Ember.Route.transitionTo('root.showingMessage')
initialState: 'dashboard'
dashboard: Ember.Route.extend
route: '/dashboard'
# Entering this state needs the messages view loaded
# with data
showingMessage: Ember.Route.extend
route: '/:id'
connectOutlets: (router, context) ->
router.get('applicationController').connectOutlet
outletName: "details"
name: "message"
context: context
serialize: (router, context) ->
id: context.get('id')
deserialize: (router, urlParams) ->
Inbox.store.find Inbox.Message, urlParams.id
FSMを使用してこの動作をモデル化することは、私には正しいように思われます。これはそのようなことをする正しい方法ですか、それとももっと良い方法がありますか?