未捕获的TypeError:showItems不是函数

时间:2016-09-22 08:23:22

标签: javascript kendo-ui kendo-grid

我不知道在我定义该功能的地方出了什么问题,但它仍然给出错误。

var sampleData = [
  { id: 1, name: "name", items: ["foo", "bar"] }
];
var defaultColumns=[
  { field: "id" },
  { field: "name" },
  { field: "items", "template":kendo.template("#= showItems(items) #") }
];


$("#grid").kendoGrid({
  dataSource: {data:sampleData},
  columns:defaultColumns
});
function showItems(arr) {
  return arr.join("</br>") ;
}  

My sample code

3 个答案:

答案 0 :(得分:0)

确保在实际应用中的全局JavaScript范围中定义了showItems。这是从Kendo UI模板内部调用的自定义函数所必需的:

http://docs.telerik.com/kendo-ui/framework/templates/overview#handle-external-templates-and-expressions

答案 1 :(得分:0)

 var sampleData = [
    { id: 1, name: "name", items: ["foo", "bar"] }
 ];
 var defaultColumns=[
    { field: "id" },
    { field: "name" },
    { field: "items", template: showItems }
 ];


 $("#grid").kendoGrid({
    dataSource: {data:sampleData},
    columns:defaultColumns
 });

 function showItems(arr) {
   return arr.items.join("</br>") ;
 }

答案 2 :(得分:0)

我能够通过在全局范围内声明showItems来解决这个问题,而且非常好。

class UrlHelpersRedirector
  def self.method_missing(method, *args, **kwargs) # rubocop:disable Style/MethodMissing
    new(method, args, kwargs)
  end

  def initialize(url_helper, args, kwargs)
    @url_helper = url_helper
    @args = args
    @kwargs = kwargs
  end

  def call(_params, _request)
    url_helpers.public_send(@url_helper, *@args, **@kwargs)
  end

  private

  def url_helpers
    Rails.application.routes.url_helpers
  end
end

# ...

Rails.application.routes.draw do
  get 'privacypolicy.php', to: redirect(UrlHelperRedirector.privacy_policy_path)    
end
    function showItems(arr) {
      return arr.join("</br>");
    }

    var sampleData = [{
      id: 1,
      name: "name",
      items: ["foo", "bar"]
    }];
    var defaultColumns = [{
      field: "id"
    }, {
      field: "name"
    }, {
      field: "items",
      "template": kendo.template("#= showItems(items) #")
    }];


    $("#grid").kendoGrid({
      dataSource: {
        data: sampleData
      },
      columns: defaultColumns
    });