Я создал функцию в компоненте format.cfc
, которая возвращает строку без HTML-кода:
<cffunction name="RemoveHTML" access="public" returntype="string" output="false" hint="Returns a string without any html">
<cfargument name="UserString" required="yes">
<cfset var result = "#REReplaceNoCase(Canonicalize(ARGUMENTS.UserString,false,true),'<[^>]*(?:>|$)', '', 'ALL')#">
<cfreturn result>
</cffunction>
Теперь я хочу разбить строку в каждом пробеле и преобразовать ее в список. Поэтому я попытался использовать ValueList() и ListToArray(), но им не нравится значение, возвращаемое функцией.
Используя ValueList(), я получаю сообщение об ошибке:
Сложные конструкции не поддерживаются функцией ValueList.
Или я получаю эту ошибку при использовании ListToArray:
Сложные типы объектов не могут быть преобразованы в простые значения
Я в основном просто делаю это:
<!--- ValueList() --->
<title>#ValueList(Application.Format.RemoveHTML(UserString = rsProduct.Title), ' ')#</title>
<!--- ListToArray() --->
<title>#ListToArray(Application.Format.RemoveHTML(UserString = rsProduct.Title), ' ')#</title>
Если я удалю функцию ListToArray() или ValueList(), я верну то, что и ожидал — строку названия продукта без HTML.
Так почему же функция не возвращает строку, хотя она выглядит так? Или я упускаю что-то совершенно очевидное?
Samsung Galaxy Note 4
- person volume one   schedule 14.12.2015<pre>
. - person Dan Bracuk   schedule 14.12.2015#ListToArray('Samsung Galaxy Note 4', ' ')#
, и он отклоняет его как сложный тип объекта. Но это просто строка, которую я сам набрал вручную. - person volume one   schedule 14.12.2015<cfoutput>
? Вы должны использовать<cfdump>
, так как это сложный объект. - person Beginner   schedule 14.12.2015