Javascript 内联HTML数据角色<&燃气轮机;脚本jquery:Kendo小部件初始化

Javascript 内联HTML数据角色<&燃气轮机;脚本jquery:Kendo小部件初始化,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,使用剑道有两种方法可以初始化剑道小部件: 一: $(“#UniqueID”).KendoWidget(); 二: Kendo.init($(“#UniqueID”); 有人知道这两种方法的优缺点吗? 我想确保我知道任何特定方向的含义 如果这是一种比较不平等的机制,这是最常见的机制,dev的观点如下 亲切问候,, Flippie我两者都用。这取决于小部件配置的复杂性,在某些情况下,由于数据上下文问题,在HTML中初始化小部件是不可能的(或者至少是非常困难的);因此,在代码中初始化它更容易。

使用剑道有两种方法可以初始化剑道小部件:

一:


$(“#UniqueID”).KendoWidget();
二:


Kendo.init($(“#UniqueID”);
有人知道这两种方法的优缺点吗? 我想确保我知道任何特定方向的含义

如果这是一种比较不平等的机制,这是最常见的机制,dev的观点如下

亲切问候,,
Flippie

我两者都用。这取决于小部件配置的复杂性,在某些情况下,由于数据上下文问题,在HTML中初始化小部件是不可能的(或者至少是非常困难的);因此,在代码中初始化它更容易。其他时候,这只是个人喜好

对于所有小部件,我将首先在HTML中声明它们,如下所示:

<div id="cases"
  data-role="grid" 
  data-bind="source: cases" 
  data-pageable="{ refresh: true }" 
  data-sortable="{ mode: 'multiple' }" 
  data-filterable="{ 
    extra: false, 
    operators: { string: { contains: 'Contains', eq: 'Is equal to' } }
  }" 
  data-columns="[
    { title: '', template: kendo.template($('#editColumnTemplate').html()), sortable: false, filterable: false, width: 42 },
    { field: 'number', title: 'Number', width: 160 },
    { field: 'subject', title: 'Subject' },
    { field: 'contact', title: 'POC', width: 200 },
    { field: 'referral', title: 'Referred By', width: 100 },
    { field: 'opened', title: 'Opened', format: '{0:d}', filterable: false, width: 120 },
    { field: 'closed', title: 'Closed', format: '{0:d}', filterable: false, width: 120 }
  ]">
</div>

我更喜欢这样做,因为小部件的所有配置都声明为与它在HTML中的位置内联。这与您必须使用诸如Kendo和Knockout之类的MVVM框架将数据绑定到视图的方式类似,因此,我希望保持一致。对我来说,它更容易维护,因为所有东西都定义在一个地方,看起来很干净。现在,如果我遇到数据上下文问题,无法绑定特定的可观察对象或数据元素,比如在这个网格的列定义中,那么我就将其全部转移到代码中

任何一种方式都或多或少是平等的。我不能告诉你哪个更常见。我想大多数开发人员都是用和我一样的方法来做的——混合使用这两种方法

<span id=”UniqueID”  data-role=”Widget” /></span>
<script>
     Kendo.init($(“#UniqueID”));
</script>
<div id="cases"
  data-role="grid" 
  data-bind="source: cases" 
  data-pageable="{ refresh: true }" 
  data-sortable="{ mode: 'multiple' }" 
  data-filterable="{ 
    extra: false, 
    operators: { string: { contains: 'Contains', eq: 'Is equal to' } }
  }" 
  data-columns="[
    { title: '', template: kendo.template($('#editColumnTemplate').html()), sortable: false, filterable: false, width: 42 },
    { field: 'number', title: 'Number', width: 160 },
    { field: 'subject', title: 'Subject' },
    { field: 'contact', title: 'POC', width: 200 },
    { field: 'referral', title: 'Referred By', width: 100 },
    { field: 'opened', title: 'Opened', format: '{0:d}', filterable: false, width: 120 },
    { field: 'closed', title: 'Closed', format: '{0:d}', filterable: false, width: 120 }
  ]">
</div>