首页 > 解决方案 > AngularJS 通过 ng-include 将作用域传递给 x-kendo-template

问题描述

我为我的 Kendo-ui 多选元素创建了一个自定义模板。

HTML:

<select kendo-multi-select k-options="vm.selectOptions" k-data-value-field="'id'" k-data-text-field="'name'" k-value-primitive="true" k-data-source="vm.people" k-ng-model="vm.selectedPeople" ></select>

设置选项的控制器代码:

this.selectOptions = {
    autoClose: false,
    tagMode: "single",
    tagTemplate: $("#_customKendoMultiSelectTemplate").html()
};

然后我在 application_layout.html 中“包含”模板:

<script id="_customKendoMultiSelectTemplate" type="text/x-kendo-template">

    # if (dataItems.length == 1) { #
    # for (var idx = 0; idx < dataItems.length; idx++) { #
    #:dataItems[idx].name#
    # } #
    # } else { #
    #:dataItems.length# ITEMS SELECTED
    # } #

</script>   

这 100% 有效,我想做的是将此模板移动到它自己的文件中,我已经这样做了,但是 angular 不知道“dataItems”是什么并呈现模板的全部内容。那么如何通过范围呢?我用 onload 方法和 ng-init 尝试了几件事,但没有成功。

<script id="_customKendoMultiSelectTemplate" type="text/x-kendo-template">
    <ng-include src="'/customKendoMultiSelectTemplate.html'" ></ng-include>
</script>   

标签: angularjskendo-uiangularjs-ng-include

解决方案


推荐阅读