Многие источники вызывают один ресурс, обычно через <cfthread ..>
, но некоторые используют <cfinclude ..>
.
В идеале код ищет переменную previous_state
. Если пропущены некоторые варианты, ресурс попытается их использовать.
Я получил эту ошибку:
Переменная PREVIOUS_STATE не определена.
Запись строки указывает на <cfif ..>
в этом фрагменте кода.
<cfparam name= "previous_state"
default= "" />
<cfif isSimpleValue( previous_state )
and len( previous_state ) eq 0>
<cfset previous_state= previousState />
</cfif>
Мой вопрос: как можно определить значение previous_state?
Я могу продублировать его в приложении, но это довольно сложная цепочка кода с использованием потоков. Возможно, ссылка была съедена сборщиком мусора?
У меня проблемы с копированием в простой сегмент кода. Я попытался установить переменную для возврата функции с помощью returnType= "void"
, но <cfparam ..>
, кажется, сбрасывает ее в пустую строку.
Вот полный контекст кода. Я удалил несвязанные переменные и тому подобное.
// Page
oComponent.foo();
// Component.foo()
<cfset var local= {
previous_state= QueryNew( "foo" , "varchar" )
} />
<cfthread name= "foo_#createUUID()#"
previousState= "#local.previous_state#">
<!--- Module does unrelated things... --->
<cfmodule template= "some_module.cfm">
<cfoutput>
// unrelated things
<cfparam name= "previous_state"
default= "" />
<!--- Next line is throwing error. --->
<cfif isSimpleValue( previous_state )
and len( previous_state ) eq 0>
<cfset previous_state= previousState />
</cfif>
</cfoutput>
</cfmodule>
</cfthread>
Теперь я думаю, что cfparam
пытается использовать область, которая больше не существует к моменту выполнения этого кода.