Coldfusion 结构的Cfparam
这里的实例是一个全局结构,但内部的“sel_isCriteriaChanged”是使用form变量创建的。但在某种形式下,我没有那个变量。在这种情况下,它将是未定义的。 因此,在这种情况下,如何将变量设置为false作为默认值。Coldfusion 结构的Cfparam,coldfusion,Coldfusion,这里的实例是一个全局结构,但内部的“sel_isCriteriaChanged”是使用form变量创建的。但在某种形式下,我没有那个变量。在这种情况下,它将是未定义的。 因此,在这种情况下,如何将变量设置为false作为默认值。 我在CFC文件中使用了这个变量如果我正确理解了这个问题,您会遇到这样的问题: <cfparam name="instance.params.sel_isCriteriaChanged" default="false"> 但是cfparam在这里被覆盖
我在CFC文件中使用了这个变量如果我正确理解了这个问题,您会遇到这样的问题:
<cfparam name="instance.params.sel_isCriteriaChanged" default="false">
但是cfparam在这里被覆盖了。只需确保始终定义表单值:
<cfparam name="instance.params.sel_isCriteriaChanged" default="false">
<cfset instance.params = {}>
<cfloop collection="#FORM#" item="key">
<cfset instance.params[key] = FORM[key]>
</cfloop>
如果我正确理解您的问题,您可以执行以下操作:
<cfparam name="FORM.sel_isCriteriaChanged" default="false">
这是以下的简写:
<cfset instance.params.sel_isCriteriaChanged = structKeyExists(form, "sel_isCriteriaChanged") ? form.sel_isCriteriaChanged : false />
我喜欢三元运算符
的简洁性:如果可能的话,我尽量避免使用
。希望这能有所帮助。您提供的代码示例如何不适用于您?请提供您收到的任何错误消息。
<cfif structKeyExists(form, "sel_isCriteriaChanged")>
<cfset instance.params.sel_isCriteriaChanged = form.sel_isCriteriaChanged />
<cfelse>
<cfset instance.params.sel_isCriteriaChanged = false />
</cfif>