Kendo 模板添加 space 其中代码是

Kendo template add space where code is

所以我正在使用这段代码为 kendo 下拉列表创建模板

 <script id="itemTemplate" type="text/x-kendo-template">      
    #if(Text.indexOf('(Deleted)') > -1){#
    <span style="display:none"></span>
    #}else{#
    <span>#:Text#</span>
    #}#    
</script>

这里的问题是代码行被解释为白色 space。我的意思是添加了白色的space。 当我将函数绑定到 select 事件并尝试获取 selected 项目的文本时

function typeChanged(e) {
   console.log(e.item.text());
}
$("#...").data("kendoDropDownList").bind("select", typeChanged);

什么console.log return是上面2个空行下面2个空行的文字。请参考图片。那么我想知道的是,除了调用 trim 函数之外,有没有办法去掉那些空行?

附加信息 当我在模板中添加更多代码行时,它还添加了额外的一行

<script id="itemTemplate" type="text/x-kendo-template">
    #if(Text.indexOf('(Deleted)') > -1){}#  <-- Added this      
    #if(Text.indexOf('(Deleted)') > -1){#
    <span style="display:none"></span>
    #}else{#
    <span>#:Text#</span>
    #}#
</script>

当我完全去掉模板的使用

旧:

        @(Html.Kendo().DropDownListFor(m => m)
              .BindTo(list)
              .DataTextField("Text")
              .DataValueField("Value")
              .HtmlAttributes(attributes)
              ...
              .TemplateId("itemTemplate")
              .ValueTemplateId("tagTemplate")
        )

新:

@(Html.Kendo().DropDownListFor(m => m)
              .BindTo(list)
              .DataTextField("Text")
              .DataValueField("Value")
              .HtmlAttributes(attributes)
              ...
              < deleted >
              .ValueTemplateId("tagTemplate")
        )

Console.log() return没问题。

您需要空 span 标签吗?如果没有,您可以反转模板中的逻辑,这样就永远不会创建空白区域。

#if(Text.indexOf('(Deleted)') == -1){#
    <span>#:Text#</span>
#}#

答案是 Kendo 实际上是在读取换行符,一旦我将其全部添加到行得通的行中

<script id="itemTemplate" type="text/x-kendo-template">#if(Text.indexOf('(Deleted)') > -1){#<span style="display:none"></span>#}else{#<span>#:Text#</span>#}# </script>