2013-01-09 62 views
3

我如何通過「簡單」參數的動作助手例如:Ember.js參數傳遞到動作助手

<li><a {{action markRead true target="controller"}}>Todo</a></li> 

真會是我要傳遞的參數。

這顯然不起作用。

它是否必須成爲這個工作的燼路徑?

+3

不知道是否不會像這樣的值,但國際海事組織我認爲你最好在控制器或模型中擁有該屬性,並且使用'markRead'作爲該屬性的切換,所以不要傳遞一個簡單的值傳該項目作爲上下文。 – MilkyWayJoe

回答

2

在灰燼的最新版本(當然> = 2.0),您的例子可以寫成:你希望它

<li><a {{action "markRead" true target="controller"}}>Todo</a></li> 

和真正的將是一個布爾值。

舊版本的Ember會將true解釋爲屬性路徑並嘗試解析其值。

+0

是不是動作助手可以支持傳遞參數給目標事件處理程序?這是故意的嗎? @Luke – selvagsz

+0

它支持作爲參數傳遞屬性值。因此,每個參數都將被解釋爲屬性路徑,該路徑將被解析爲其基礎值,然後通過操作傳遞給目標。 –

+0

此答案不再有效。檢查[@ kabal的答案](http://stackoverflow.com/a/21612052/316700) – fguillen

3

也許這已加入最近ember.js,但你肯定可以在動作助手傳遞參數

模板:

{{action "downloadVideo" this false}} 

路線:

var ApplicationRoute = FooRoute.extend({ 

    actions: { 
     downloadVideo: function(video, closeModal) { 
     console.log("closeModal", closeModal); //outputs "closeModal false" if this didnt work it would output "closeModal undefined" 
     } 
    } 
}); 
+0

這適用於我(> v2.0) – fguillen

相關問題