當我使用Ember路由器時,如何定義連接到控制器的模板中的動作?Ember.js路由器對控制器的動作
一個例子是在這裏: http://jsfiddle.net/KvJ38/3/
的Unter我的個人資料有兩個動作: 一是在國家規定,並正在 二是在控制器上定義。我如何使這個工作,或者我應該使用另一種方法?
App.Router = Em.Router.extend({
enableLogging: true,
location: 'hash',
root: Em.State.extend({
// EVENTS
goHome: Ember.State.transitionTo('home'),
viewProfile: Ember.State.transitionTo('profile'),
// STATES
home: Em.State.extend({
route: '/',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet(App.HomeView);
}
}),
// STATES
profile: Em.State.extend({
route: '/profile',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet(App.ProfileView);
}
}),
one: function() {
alert("eins");
},
})
});
謝謝。這裏是工作解決方案:http://jsfiddle.net/KvJ38/4/ – Lux
其實,一個動作的默認目標是包含控制器,然後是路由器。下面是一個示例jsbin,顯示控制器在控制器和路由上定義時處理動作:http://emberjs.jsbin.com/tupil/3/edit。以下是關於操作的燼文檔:http://emberjs.com/guides/templates/actions/ – bantic
從文檔:「默認情況下,{{動作}}助手觸發模板控制器上的方法」http:/ /emberjs.com/guides/templates/actions/#toc_action-bubbling – fmendez