2014-05-21 52 views
6

我有一個可能從不同的路由/模板觸發的動作,但最終應該發送到應用程序控制器中的動作。我該怎麼做呢?我只看到needs屬性用於將操作發送給子控制器的示例。如何將操作發送給父控制器?

那麼從/posts/post/(應用程序)發送的動作如何被髮送到應用程序控制器?

回答

7

你通常在ApplicationRoute定義表單處理程序:

App.ApplicationRoute = Em.Route.extend({ 
    actions: { 
    print: function() { 
     console.log('hello'); 
    } 
    } 
}); 

然後,如果你的行動是不是你的控制器或特定的路線,該操作將向上冒泡到任何父路徑,直到ApplicationRoute定義要麼。

如果要在路由和應用程序級別處理動作,則必須在動作處理程序中返回true以便動作可以起泡。

App.IndexRoute = Em.Route.extend({ 
    actions: { 
    print: function() { 
     console.log('hello'); 
     return true; 
    } 
    } 
}); 

檢查guide的詳細說明。

+0

謝謝,我定義的動作是應用程序路線而不是應用程序功能 –

+0

,這是驚人的。謝謝。 – kushdilip

+3

這不行! –

相關問題