在子根(聚合物)中使用数组作为属性

时间:2017-03-06 09:34:09

标签: jquery arrays polymer

我有两个要素。第一个(主机)在变量(称为渲染器)中包含一个数组,用作子元素的html属性(通过使用聚合物数据绑定)

<my-datatable id="datatable" datas="https://myawesomeurl.com/datasource.php" target-table="manualTable" renderers={{renderers}}>

并在js:

renderers: {
  type: Array,
  reflectToAttribute: true
  }
},

attached: function () {
  this.$.datatable.renderDatatable();
  this.renderers = [
 {
   "render": function( data, type, row ) {
     return data +' ('+ row[3]+')';
   },
   "targets": 0
 }
]
}

在子元素中,声明了该属性

Polymer({
  is: 'my-datatable',
  properties: {
    datas: {
      type: String
    },
    targetTable: {
      type: String
    },
    renderers: {
      type: Array,
      value: []
    }
  },
renderDatatable: function () {
    console.log(this.targetTable);
    console.log("render ", this.renderers);
    var table = jQuery(Polymer.dom(this).getOwnerRoot().host.$[this.targetTable]).DataTable({
  "colReorder": true,
  "paging":   false,
  "info": false,
  "processing": true,
  "serverSide": true,
  "ajax": this.datas,
  "columnDefs": this.renderers,
  dom: 'Blfrtip',
  buttons: [
    'copy', 'csv', 'excel', 'pdf', 'print'
  ]
});

但是在this.renderers的控制台日志中,它始终是空的。我不明白。任何线索? (如果你想知道,我试图制作一个jquery数据表元素,它将列渲染器作为输入)

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

<my-datatable id="datatable" datas="https://myawesomeurl.com/datasource.php" target-table="manualTable" renderers$="{{renderers}}">

绑定属性值时,它应该有$符号。

请参阅Polymer Data Binding