当我使用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