不了解在网格中生成复选框的此kendo模板

 xwu9052591 发布于 2023-02-08 15:37

我不了解Kendo模板的基本知识,所以也许有人可以向我解释一下.网格中单元格的模板示例来自Telerik示例代码.

template:"

最终,这会生成一个输入标记,如果IsAdmin的值为true,则包含"checked ='checked'"

我不明白评估的背景

#= IsAdmin ? checked = 'checked' : '' #

文档说"#="表示"渲染为文字"(无论这意味着什么),我理解"IsAdmin"是评估/执行模板时提供的值.

#=后面的内容看起来像Javascript,但如果只是那样,它只会将名为"checked"的变量的值设置为"checked"或空字符串.

是个 ?这里的运算符真的是javascript,还是剑道模板语言?我没有看到过与运营商特定的Kendo特定语言.但如果这真的是一个Javascript?运算符,它是如何工作的,我们得到一个文字"checked ='checked',而不是设置一个名为"checked"的var,值为'checked'.

叫我困惑.

1 个回答
  • 这是JavaScript.使用此模板字符串:

    "<input type='checkbox' #= isAdmin ? checked='checked' : '' # />"
    

    Template.compile将生成如下函数:

    function anonymous(data) {
        var o, e = kendo.htmlEncode;
        with(data) {
            o = '<input type=\'checkbox\' ' + (isAdmin ? checked = 'checked' : '') + ' />';
        }
        return o;
    }
    

    如您所见,您的模板部分无需更改即可使用.渲染单元格时,将执行此函数(传入您的数据项,例如网格的行模型),并将结果字符串用作单元格的内容.

    从呈现的HTML的角度来看,这里:

    "<input type='checkbox' #= isAdmin ? checked='checked' : '' # />"
    

    相当于:

    "<input type='checkbox' #= isAdmin ? 'checked' : '' # />"
    

    因为checked='checked'只会评估为'已检查'.但是,使用第一个变体还将设置checked传递给模板函数的数据的属性(请参阅演示以进行说明).

    2023-02-08 15:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有