2012-11-15 53 views
0

有沒有一種方法(希望乾淨),我可以在這裏做同樣的事情,而不分配狀態值? 當if條件在同一行上時,我一直遇到if條件返回布爾值(而不是函數)的問題。把條件和函數調用放在一行

onItemChanged = (event,ui) -> 
    input_element = event.target 
    list_id = input_element.getAttribute('list_id') 
    state = if input_element.checked 
      onItemChecked //function of int -> nothing 
      else 
      onItemUnchecked //function of int -> nothing 

    state (list_id) 

回答

2

想要這樣:

onItemChanged = (event, ui) -> 
    input = event.target 
    state = if input.checked then onItemChecked else onItemUnchecked 
    state input.getAttribute('list_id') 

甚至:

onItemChanged = ({target: input}, ui) -> 
    state = if input.checked then onItemChecked else onItemUnchecked 
    state input.getAttribute('list_id') 
1

不知道你會考慮更乾淨,但你也可以撥打if表達直接的結果是:

onItemChanged = (event,ui) -> 
    input_element = event.target 
    list_id = input_element.getAttribute('list_id') 
    (if input_element.checked then onItemChecked else onItemUnchecked) list_id 

或者,也許只是調用ifonItemCheckedonItemUnchecked

onItemChanged = (event,ui) -> 
    input_element = event.target 
    list_id = input_element.getAttribute('list_id') 
    if input_element.checked 
    onItemChecked list_id 
    else 
    onItemUnchecked list_id