0

我想从我的车把脚本发送额外的信息到我的控制器;这是我的代码:

<a {{action "resetState" data="state1" }}>reset1 </a>

我无法在控制器中检索 state1;如何向后端发送额外的字符串?

4

3 回答 3

5

API 说你可以传入多个参数。

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);
},

在这个 jsbin 中查看它的实际效果

于 2013-08-27T19:27:29.877 回答
2

您可以将一个或多个上下文对象传递给动作处理程序,方法是将它们包含在动作名称之后,如下所示:

{{action resetState state1}}
于 2012-12-03T13:42:29.447 回答
1

您可能还需要指定一个目标(target="MyApp.someObject" 或 target="this"),除非您希望该操作转到您的路由器。如果您确实希望路由器获取消息,则需要向其发送定义的对象并将动态段设置为 :objectname_id 以从中获取对象,或者使用反序列化方法。

route: '/service/:some_dynamic_segment',

    deserialize: function(router, params) {
       //params should equal {some_dynamic_segment: 'whatever you passed in'}
    }

如果您确实将操作发送到路由器以外的地方,请记住,其他事件都被视图拦截,而不是控制器,以防您想将所有这些东西放在一起。

于 2012-12-07T07:54:27.643 回答