2017-03-28 5 views
0

Hier ist Beispiel eine globale Struktur, aber "sel_isCriteriaChanged" innerhalb, die mithilfe von Formularvariablen erstellt wird. Aber in gewisser Form habe ich diese Variable nicht. In diesem Fall ist es undefiniert. Also in diesem Fall, wie Sie die Variable als Standardwert auf false setzen.
ich diese Variable bin mit innen CFC-DateiCfParam für eine Struktur

+2

Wie funktioniert das Codebeispiel, das Sie geliefert haben, nicht für Sie? Bitte geben Sie alle Fehlermeldungen an, die Sie erhalten. –

Antwort

0

Wenn ich die Frage richtig verstanden haben Sie so etwas wie dieses:

<cfparam name="instance.params.sel_isCriteriaChanged" default="false"> 

<cfset instance.params = {}> 
<cfloop collection="#FORM#" item="key"> 
    <cfset instance.params[key] = FORM[key]> 
</cfloop> 

aber die cfparam wird hier overwriten. Überprüfen Sie einfach das Formular Wert wird immer definiert:

<cfparam name="FORM.sel_isCriteriaChanged" default="false"> 
0

Wenn ich Ihr Problem richtig verstehe, Sie könnten etwas tun, wie folgt aus:

<cfset instance.params.sel_isCriteriaChanged = structKeyExists(form, "sel_isCriteriaChanged") ? form.sel_isCriteriaChanged : false /> 

Dies ist eine Abkürzung für:

<cfif structKeyExists(form, "sel_isCriteriaChanged")> 
    <cfset instance.params.sel_isCriteriaChanged = form.sel_isCriteriaChanged /> 
<cfelse> 
    <cfset instance.params.sel_isCriteriaChanged = false /> 
</cfif> 

Ich mag die Knappheit der ternären Operator ? : und ich versuche zu vermeiden, <cfparam> zu verwenden, wenn möglich. Hoffe das hilft.

Verwandte Themen