3

我有一个带有工具提示的剑道网格,在剑道工具提示中显示详细信息。以下模板用作外部模板时有效。但是,我不确定模板是否可以作为内联模板传递。

这是我的代码,外部模板

    <script id="javascriptTemplate" type="text/x-kendo-template">
    <ul>
    # for (var i = 0; i < data.applications.length; i++) { #
        <li>#= data.applications[i].name #</li>
    # } #
    </ul>
   </script>

它在控制器中被称为,

    $scope.toolTipOptions = {
            filter: "td:nth-child(4)",
            position: "right",
            content: function(e) {
                var grid = e.target.closest(".k-grid").getKendoGrid();
                var dataItem = grid.dataItem(e.target.closest("tr"));
                var template = kendo.template($("#javascriptTemplate").html());
                return template(dataItem);    
          },
          show: function(e) {
            this.popup.element[0].style.width = "200px";
            this.popup.element[0].style.left = "10px";
          }
    }

但是当我尝试传递一个内联模板时,它抱怨模板不是一个函数。在这种情况下,关于我如何传递内联模板的任何指示

      $scope.toolTipOptions = {
            filter: "td:nth-child(4)",
            position: "right",
            content: function(e) {
                var grid = e.target.closest(".k-grid").getKendoGrid();
                var dataItem = grid.dataItem(e.target.closest("tr"));

                var template = "<ul>\# for (var i = 0; i < data.applications.length; i++) { #<li>#= data.applications[i].name #</li>\# } #</ul>"
                return template(dataItem);    
          },
          show: function(e) {
            this.popup.element[0].style.width = "200px";
            this.popup.element[0].style.left = "10px";
          }
    }
4

1 回答 1

0

在第二种解决方案中,您可能只需要kendo.template(). 在您的代码中,在template上面的一行中定义为字符串。

于 2015-10-14T17:57:18.783 回答