2015-12-04 143 views
0

我一直試圖不結束嘗試爲Kendo網格創建自定義過濾器模板,當網格在filterMode: "row"。我可以讓HTML出現,但是angular指令永遠不會被編譯。Kendo網格與angularjs過濾器行自定義指令

這是該列的過濾器配置:

filterable: { 
         cell: { 
          template: function getTemplate(args) { 
           var container = $("<span>").appendTo(args.element.parent()); 
           var buttonTemplate = kendoGridService.compileTemplate({ 
            template: "modules/common/templates/kendo/columns/days-of-week-edit.tpl.html", 
            data: options 
           }); 
           container.append(buttonTemplate); 
          }, 
          showOperators: false 
         } 
        } 

這裏是上面提到的編譯模板函數:

compileTemplate: function compileTemplate(options) { 

       var template = $templateCache.get(options.template); 
       var templateFn = kendo.template(template); 
       var result = templateFn(options.data); 

       return result; 
      } 

以下是我在HTML看到:

<span class="k-operator-hidden"> 
    <input data-bind="value: value"> 
    <span> 
    <days-of-week-edit data-item="dataItem"></days-of-week-edit> 
    </span> 
</span> 

最後,這是我在UI中看到的。不是默認輸入字段在那裏,但沒有其他東西被呈現。

enter image description here

回答

1

好像你也必須用角來編譯模板。嘗試使用$compile服務:

  var template = $templateCache.get(options.template); 
      var templateFn = kendo.template(template); 
      var result = templateFn(options.data); 

      $compile(result)($scope); 

      return result; 

只要確保你與dataItem屬性的有效$scope對象內部

+0

你說對了!謝謝。雖然我確實必須檢查以確保編譯時範圍不爲空。 – unsingefou