我使用了kendoListView,我想只显示满足我条件的项目:
<div id="selectableListView" data-bind="kendoListView: { data: dataSource._kendoDataSource, template: $('#template_selectable').html(), selectable: true, change: changeMultiSelection, navigatable: true, dataBound: productsRetrieved}"> </div>
<script type="text/x-kendo-tmpl" id="template_selectable">
#if(variableFromPageId !== Id){#
<div class="principal">
<div class="list-view-details">
<div class="secction-top">
<div class="item-name-two-lines item-name-link">
<a class="link"> #:Project.Utils.getDefaultName(Name)# </a>
</div>
</div>
<div class="secction-center">
<span class="item-description-two-lines">#:Project.Utils.getDefaultDescription(Description)#</span>
</div>
</div>
</div>
#}else{#
console.log('Do nothing!');
# }#
</script>
问题是variableFromPageId位于我的页面上下文中,listview无法访问该上下文如何从调用kendoListView的页面访问变量?或者将variableFromPageId作为变量发送。我尝试过很多东西:
<div data-bind="if: checkId(Id)">
</div>
#console.log(ko.contextFor(this).$page.checkId('#:Id#'));#
内部数据绑定doens在列表视图中完全无效,它忽略了所有数据绑定,控制台日志说第二个选项无法找到$ page of null,所以我怎么能从具有KendoListView的页面获取上下文。
答案 0 :(得分:0)
您的数据源中不得有variableFromPageId
,因此您的模板不知道它是什么。
您可以将该值添加到现有数据源中,方法是将其添加到每个数组值,也可以将不同的数据源传递给模型中较高的Kendo模板,例如您的Knockout {{1} }或$root
值。如果选择后者,则需要在Kendo模板中放置自己的$parent
语句以循环遍历数组。