【问题标题】:Is it possible have this code equivalent code in kendo external template是否有可能在剑道外部模板中有此代码等效代码
【发布时间】:2023-03-09 07:00:01
【问题描述】:

我有 this dojo 及其内联模板

  var actionName = 'read';
    $("#grid").kendoGrid({
      columns: [
        { field: "name" },
        { field: "age" }
      ],
      dataSource: [
        { name: "Jane Doe", age: 30, read: true, actionName: actionName }
      ],
      detailTemplate: "<div> #:" + actionName  +"# </div>"
    });

this dojo 及其外部模板:

<script id="detailTemplate" type="text/x-kendo-template">
        #: actionName #
</script> 


var actionName = 'read';
$("#grid").kendoGrid({
  columns: [
    { field: "name" },
    { field: "age" }
  ],
  dataSource: [
{ name: "Jane Doe", age: 30, read: true, actionName: actionName }
  ],
  detailTemplate: function(dataItem){ 
    return kendo.template($("#detailTemplate").html())(dataItem);
  }
});

在第一个detailTemplate: "&lt;div&gt; #:" + actionName +"# &lt;/div&gt;" 我可以渲染值:true 但是在第二个#: actionName # 我可以渲染read

所以我的问题是如何渲染到价值true

【问题讨论】:

    标签: javascript kendo-ui telerik kendo-template


    【解决方案1】:

    参数(你命名的)dataItem 接管当前行的数据。然后,您需要编写要渲染的属性。 dataItem 对整个模板有效。

    <script id="detailTemplate" type="text/x-kendo-template">
        #: read #
    </script>
    

    detailTemplate: function(dataItem){ 
        return kendo.template($("#detailTemplate").html())(dataItem);
    }
    

    应该够了。

    Dojo example

    detailTemplate 中函数的参数将包含行中对象的所有属性(甚至不显示为列)。因此,如果您要进行一些特殊的计算或其他操作,您可以在详细模板函数中进行,并创建新的属性,该属性可以在模板中通过名称访问。

    Dojo example 2

    编辑: 如果你想运行(比如说)一些命令,它是字符串,你必须使用 eval 函数。此函数将执行文本。这意味着如果您将某个函数名称用作 eval 参数,则该函数将被执行。

    Dojo example 3

    然而,我敢从这个网站引用一个重要的段落:eval - mozila developer

    不要不必要地使用 eval!

    eval() 是一个危险的函数,它以调用者的权限执行它传递的代码。如果 您使用可能受恶意软件影响的字符串运行 eval() 派对,您最终可能会在用户的机器上运行恶意代码 具有您的网页/扩展程序的权限。更重要的是, 第三方代码可以看到调用 eval() 的范围,其中 可能会导致可能以类似功能的方式进行攻击 不易感染。

    eval() 通常也比替代方法慢,因为它必须 调用 JS 解释器,同时优化许多其他结构 通过现代 JS 引擎。

    对于常见的 eval(),有更安全(更快!)的替代方法 用例。

    【讨论】:

    • 嗨 Ademar,实际上我需要的是 #: read # 参数,而不是硬编码
    • 宾果游戏,这就是我要找的
    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2015-06-06
    相关资源
    最近更新 更多