gpt4 book ai didi

javascript - 不理解这个在网格中生成复选框的剑道模板

转载 作者:行者123 更新时间:2023-11-29 09:52:12 25 4
gpt4 key购买 nike

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

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

最终,这会生成一个输入标签,如果 IsAdmin 的值为真,则该标签将包含“checked='checked'”

我不明白

的评价语境
#= IsAdmin ? checked = 'checked' : '' #

文档说“#=”表示“呈现为文字”(不管是什么意思),我知道“IsAdmin”是评估/执行模板时提供的值。

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

是吗?这里的运算符真的是 javascript,还是 Kendo 模板语言?我没有看到任何关于带有运算符的 Kendo 特定语言的提及。但如果这真的是一个 Javascript 呢?运算符,它是如何工作的,我们从中得到一个文字“checked='checked',而不是设置一个名为“checked”的变量,值为'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 的 Angular 来看,这里是:

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

相当于:

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

因为 checked='checked' 将简单地评估为 'checked'。然而,使用第一个变体也会对传递到模板函数的数据设置 checked 属性(参见 demo for illustration )。

关于javascript - 不理解这个在网格中生成复选框的剑道模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20737106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com