我想從我的手柄腳本向控制器發送額外信息;這是我的代碼:從Ember手柄欄動作將參數傳遞給控制器
<a {{action "resetState" data="state1" }}>reset1 </a>
我無法檢索我的控制器中的state1;我怎麼發送額外的字符串到後端?
我想從我的手柄腳本向控制器發送額外信息;這是我的代碼:從Ember手柄欄動作將參數傳遞給控制器
<a {{action "resetState" data="state1" }}>reset1 </a>
我無法檢索我的控制器中的state1;我怎麼發送額外的字符串到後端?
您可以將一個或多個上下文對象的操作處理程序通過包括操作名稱在他們之後,像這樣:
{{action resetState state1}}
你可能還需要指定一個目標(目標=「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'}
}
如果你發送的動作比你的路由器上其它的地方,請記住,其他事件都是由視圖,而不是控制器截獲,在你想保留所有的東西一起案件。
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);
},
由於聖拉斐爾;然而問題是我沒有傳遞上下文對象;我只傳入任意標識字符串。 –
反序列化方法不適用於那些?如果沒有,你可能需要建立一個處理這些消息的控制器(然後從消息發送的視圖中設置屬性),甚至可以創建一個混合,以便所有的控制器或視圖都可以通過重新打開類別方法。 – raphael