Почему ColdFusion добавляет пробел, когда я вызываю функцию в cfoutput?

Если я делаю что-то вроде этого в ColdFusion:

<cfoutput>foo="#foo()#"</cfoutput>

Получающийся HTML имеет пространство перед ним:

foo=" BAR"

Однако, если это не вызов функции, это хорошо работает, т.е.:

<cfset fooOut=foo() />
<cfoutput>foo="#fooOut#"</cfoutput>

Дает этот вывод:

foo="BAR"

Куда это дополнительное пространство прибывает из и является там чем-нибудь, что я могу делать с этим?


Редактирование Для разъяснения пространство не находится в значении, возвращенном моим foo функция:

<cffunction name="foo" access="public" returntype="string">
  <cfreturn "BAR" />
</cffunction>

Но я также нашел, что этого не происходит со встроенными функциями, т.е.:

<cfoutput>"#UCase("bar")#"</cfoutput>

Печать:

"BAR"

Однако это действительно происходит, если я передаю вывод своей функции к встроенной функции (эта часть не имеет никакого смысла мне). т.е.:

<cfoutput>"#UCase(foo())#"</cfoutput>

Печать:

" BAR"
17
задан James A Mohler 30 November 2012 в 01:23
поделиться

2 ответа

Убедитесь, что атрибут output определен как false.

<cfcomponent output="false">

  <cffunction name="foo" access="public" returntype="string" output="false">
    <cfreturn "BAR">
  </cffunction>

</cfcomponent>

Или сделайте это в стиле cfscript, и лишние пробелы не будут введены.

function foo()
{
  return "BAR";
}
28
ответ дан 30 November 2019 в 12:35
поделиться

Посмотрим, поможет ли это http://www.simonwhatley.co.uk/eliminating-whitespace-in-coldfusion

2
ответ дан 30 November 2019 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: