У меня есть этот шаблон:
<script id="tmpl_bound_menuitem" type="text/x-kendo-template">
<li data-bind="attr: { class: style }">
<a data-bind="attr: { href: href }, text: name"></a>
</li>
</script>
Представление использует это для создания пунктов меню из модели меню:
<ul class="dropdown-menu" data-bind="source: menu_test" data-template="tmpl_bound_menuitem"></ul>
Это прекрасно работает. Но если я установлю эти данные:
menuModel.set("menu_test", [
{ name: "MenuItem1", href:"#/route1" },
{ name: "", style: "divider" }
]);
Результат имеет неопределенные значения, как и ожидалось:
<ul class="dropdown-menu" data-bind="source: menu_test" data-template="tmpl_bound_menuitem">
<li class="undefined" data-bind="attr: { class: style }">
<a data-bind="attr: { href: href }, text: name" href="#/route1">MenuItem1</a>
</li>
<li class="divider" data-bind="attr: { class: style }">
<a data-bind="attr: { href: href }, text: name" href="undefined"></a>
</li>
</ul>
Теперь вопрос: можно ли заставить этот шаблон работать для разных типов пунктов меню?
Что-то вроде кода javascript в «обычных» шаблонах:
# if(href) { #<a data-bind="attr: { href: href }, text: name"></a># } #
Но здесь это не работает, потому что href не определен.