2016-08-11 5 views
0

によって配列から要素を取得し、私はこのコードを持っている:Freemarkerの:インデックス

<#local slots = time_utils.get_slots(objectArray) /> 
<#local days = time_utils.get_short_days(objectArray) /> 
<#local index = 0 /> 
<#list days as day> 
    <#list slots as slot> 
     <#if time_utils.is_slot_available(objectArray[index], slot, day)> bla bla </#if> 
     <#local index = index + 1 /> 
    </#list> 
</#list> 

機能:

<#function is_slot_available date slot short_date> 
    <#local hour_of_date = '${date.startsAt?string["HH"]}' />  
    <#local day_of_date = '${date.startsAt?string["dd"]}' /> 
    <#if (hour_of_date == '${slot[6..7]}') && (day_of_date == '${short_date[short_date?length-5..short_date?length-4]}')> 
     <#return true />  
    </#if> 
    <#return false /> 
</#function> 

私はこのコードを実行すると、私はエラーを持っている: 実行エラーマクロ: is_slot_available 必須パラメーター:日付が指定されていません。

indexを0または関数呼び出しのobjectArray[index]の任意の数値に置き換えても、このエラーは発生しません。

これを行うにはどうすればいいですか?

ありがとうございます! @ddekanyへ

+0

あなたは関数を呼び出すと 'day'を' slot'と 'slot'を' short_date'として渡したことに気付きましたか? –

+0

いいえ、私はしませんでした。ありがとう! – dardy

+1

'index'の値は、範囲外になるか、' null'を格納する配列項目に実行されるまで増加していると思います。 (あなたの問題とは無関係ですが、これが可能であることに注意してください: '<#local index ++ />') – ddekany

答えて

0

ありがとう:問題だった

I guess the value of index increases until it goes out of range, or runs into an array item that stores null.


関連する問題