我正在使用Handlebars.js模板引擎,并试图找到一种方法来做这样的事情(人为的例子):
{{#if itemSelected "SomeItem"}}
<div>This was selected</div>
{{/if}
Run Code Online (Sandbox Code Playgroud)
这itemSelected是一个如此注册的助手:
Handlebars.registerHelper("itemSelected", function(item) {
var selected = false;
// Lots of logic that determines if item is selected
return selected;
});
Run Code Online (Sandbox Code Playgroud)
尝试将此语法用于模板时出现错误,我找不到任何显示此类事物的示例.我确实看到像这样简单的#if块......
{{#if myValueInContext}}
<div>This will show if myValueInContext results in a truthy value.</div>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何解决第一个例子.也许我正在接近这个错误.
顺便说一句,我标记了这个Mustache,因为我无法在问题中添加Handlebars标签.
我一直在寻找答案,并认为我错过了一些简单的事情.我有一个kendo网格,我希望其中一列成为另一个页面的链接,id为路由参数.但是,列单元格中的值是绑定值,并且我的模板不会更改.任何见解将不胜感激.
@(Html.Kendo().Grid((IEnumerable<ProviderAccess>)Model.Providers)
.Name("grants-grid")
.Columns(columns =>
{
columns.Bound(a => a.ProviderName);
columns.Bound(a => a.HasAccess);
columns.Bound(a => a.ProviderId).ClientTemplate("#= toggleLink(data) #");
})
.Scrollable()
)
<script>
function toggleLink(access) {
var action = '@Url.Action("Toggle", "Access")';
var html = kendo.format("<a href='{0}/{1}'>Toggle...</a>",
action,
access.ProviderId
);
return html;
}
</script>
Run Code Online (Sandbox Code Playgroud) asp.net-mvc client-templates asp.net-mvc-4 kendo-ui kendo-grid
我认为 Microsoft从AJAX Toolkit中删除了客户端模板,转而使用jQuery Templates插件.我试图找到这一点,除了一些"会做"的博客文章的完整文档,如这一个我无法找到除了@#$%东西-从预览/β虚假,过时的文档和杂志文章的负载几天的ASP.NET AJAX 4.0.
任何人都可以确认ASP.NET AJAX 4.0客户端模板功能实际上是正式的jQuery模板,并且在当前的Microsoft库中对于客户端模板绝对没有Sys.*等价物吗?