ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-08-31 07:34:08  阅读:220  来源: 互联网

标签:javascript templates kendo-ui kendo-grid telerik


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

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

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

我不明白评估的背景

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

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

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

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

叫我困惑.

解决方法:

这是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’.
但是,使用第一个变体还将在传递给模板函数的数据上设置checked属性(参见demo for illustration).

标签:javascript,templates,kendo-ui,kendo-grid,telerik
来源: https://codeday.me/bug/20190831/1774023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有