我想从我的把手脚本中向我的控制器发送额外信息;这是我的代码:
<a {{action "resetState" data="state1" }}>reset1 </a>
我无法在控制器中检索state1;如何将额外的字符串发送到后端?
答案 0 :(得分:5)
The API says您可以传递多个参数。
html和把手:
{{officename}}
<button {{action "actionTest" "hello" "goodbye" officename}}>See parameters through action in the console</button>
控制器:
actionTest: function(a, b, c){
console.log(a);
console.log(b);
console.log(c);
},
答案 1 :(得分:2)
您可以将一个或多个上下文对象传递给操作处理程序,方法是将它们包含在操作名称之后,如下所示:
{{action resetState state1}}
答案 2 :(得分:1)
除非您希望操作转到路由器,否则您可能还需要指定目标(target =“MyApp.someObject”或target =“this”)。如果您确实希望路由器获取消息,则需要向其发送一个已定义的对象,并使动态段为:objectname_id以从中获取对象,或使用deserialize方法。
route: '/service/:some_dynamic_segment',
deserialize: function(router, params) {
//params should equal {some_dynamic_segment: 'whatever you passed in'}
}
如果您确实将操作发送到路由器以外的其他位置,请记住,其他事件都会被视图拦截,而不是控制器,以防您想要将所有这些内容保存在一起。