我有有一個按鈕與像 {{動作「創建」}} 和內部的動作創建我寫像this.transitionTo(「page.new」)的作用的部件; 但我收到一個異常像無法讀取屬性'輸入'的undefined任何人都可以回答嗎?只是想知道是否可以從一個組件路由?我們可以從一個呃js中的組件路由嗎?
回答
我發現答案是possible.we可以使用簡單地使用下面的代碼從我們的組件行動
App.Router.router.transitionTo('new route');
,我們會盡快回電這一點,我們可以在其中設置新路線的模型。使用下面的代碼。
App.Router.router.transitionTo('your route here').then(function(newRoute){
newRoute.currentModel.set('property','value');
});
這似乎不再適用於Ember 1.11 – Tomas
Ember.Component
從Ember.View
延伸,你不能在視圖中使用this.transitionTo
。它只能通過控制器/路由器完成。
如果您希望點擊組件內部的轉換,您可以使用link-to
幫助程序,但是如果您仍然希望能夠處理該操作,請閱讀:http://emberjs.com/guides/components/handling-user-interaction-with-actions/和後面的指南。
鏈接已死 –
要做到這一點的方法是從您的組件中使用this.sendAction()
並將其向上傳到路由器。路由器然後可以撥打this.transitionTo()
。
的方式link-to
做它是通過將路由_routing: inject.service('-routing'),
注入是你想要做的最後一件事。你溝通路線和組件之間的行動方式是使用sendAction方法Send Action
template.hbs
{{your-component action="nameOfYourRouteAction" }}
route.js
export default Ember.Route.extend({
ratesService: Ember.inject.service(),
model() {
//return yourdata
},
actions: {
nameOfYourRouteAction(...args){
this.transitionTo(...args);
}
}
});
在component.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
toggleTransition: function(...args) {
this.sendAction('action', ...args);
}
}
});
個
component.hbs
<button {{action "toggleTransition" 'your route'}}>Change Route</button>
在組件模板中,您可以免費獲得#link-to helper,但無法在組件js中複製該行爲沒有任何關於傳遞消息的麻煩,這總是一件麻煩事。特別是如果你有幾個組件層下來。 – Epirocks
以及我認爲它比反模式路由注入更好;) –
- 1. 我們可以說路由器是一個網絡嗎?
- 2. 我們可以將CSS和JS文件組合成一個文件嗎?
- 3. 我可以從另一個調用一個js文件嗎?
- 4. 我們可以在Zuul路由配置中使用HTTPMethod嗎?
- 5. 我們可以通過路由VAR一個Ajax $ http.get
- 6. 我們可以從xml文件創建一個類嗎?
- 7. 我們可以在WSO2ESB中設置一個數組嗎?
- 8. NancyFX中的路由可以使用多個模塊組成嗎?
- 9. 我們可以有多個管理路由在CakePHP中?
- 10. 我們可以創建一個泛型類的數組嗎?
- 11. 我們可以從DOM中移除一個元素嗎?
- 12. React js:我可以將數據從一個組件傳遞到另一個組件嗎?
- 13. 我可以在jQuery.ajax的CodeIgniter中調用多個路由嗎?
- 14. 我們可以在C++中創建一組數組嗎?
- 15. 我們可以縮短我寫在js中的jQuery代碼嗎?
- 16. 我可以寫一個由TemporaryFiles組成的.zip嗎?
- 17. 流星鐵路由器 - 我可以在路由中有多個數據源嗎?
- 18. 我們可以在Bar中放置一個devexpress ComboBoxEdit控件嗎?
- 19. 我們可以在apk文件中捆綁一個目錄嗎?
- 20. 我們可以在android中打開一個swf文件嗎?
- 21. Angular2路由器 - 從一個子組件
- 22. 我們可以從一個Woocommerce Store運行多個網站嗎?
- 23. 我們可以從我們的android appllication安裝另一個應用程序嗎?
- 24. 我可以在ASP.NET MVC路由中做到這一點嗎?
- 25. 如何從一個組件路由到另一個組件?
- 26. 我們可以使用ui:include在JSF中來顯示一個組件嗎?
- 27. Ember組件可以偵聽路由的didTransition操作嗎?
- 28. 我們可以調用另一個JS文件中的一個JavaScript編寫的函數嗎?
- 29. 我們可以在C中的數組中使用數組嗎?
- 30. 我們可以通過js
能告訴你負責組件的代碼? –