使用AngularJs的剑道网格工具栏列菜单

使用AngularJs的剑道网格工具栏列菜单,angularjs,kendo-ui,kendo-grid,Angularjs,Kendo Ui,Kendo Grid,我正在尝试使用剑道网格工具栏中的剑道ui菜单,如下所示: 我能够使用JQuery实现这一点(这是一个可行的方法,但我需要在Angular中实现它) 我尝试在网格的数据比例尺功能中使用: for (var i = 0, max = $scope.SearchGrid.columns.length; i < max; i++) { ds.push({ encoded: false,

我正在尝试使用剑道网格工具栏中的剑道ui菜单,如下所示: 我能够使用JQuery实现这一点(这是一个可行的方法,但我需要在Angular中实现它)

我尝试在网格的数据比例尺功能中使用:

              for (var i = 0, max = $scope.SearchGrid.columns.length; i < max; i++) {
              ds.push({
                  encoded: false,
                  text: "<label><input type='checkbox' checked='checked' " +
                      " class='check' data-field='" +
                      $scope.SearchGrid.columns[i].field +
                      "</label>"
              });

          }
我在工具栏中有如下内容:

toolbar: [

          {
              name: "Edit Columns",
              template:
                  '&nbsp;&nbsp;&nbsp;<div class="k-button btn btn-default btn-xs" style="float: left" kendo-menu k-data-source="menuDataSource"></div>'
          }
      ],
工具栏:[
{
名称:“编辑列”,
模板:
'   '
}
],

但是菜单在“ds”中出现任何内容之前呈现,我不知道如何调用像
dataSource.read()这样的东西
在菜单上。我想一定有办法做到这一点,但就我个人而言,我无法解决。非常感谢您的帮助!

所以您希望在网格渲染后在kendoMenu中设置项目,但在网格工具栏中使用kendoMenu。最好的解决方案是在网格读取数据后在菜单数据源中设置新项目。您可以se数据源
setOptions
方法
kendoMenu
例如:

$('div[kendo-grid="SearchGrid"] .k-menu').data('kendoMenu').setOptions({dataSource: $scope.menuDataSource});

检查此示例-我将Item2添加到dataSource,并在kendoMenu中设置:

感谢您的帮助,不幸的是,这对我不起作用。这是一个Dojo-。我正在尝试使用网格中的列名动态生成菜单。我尝试在databound上调用函数,但没有得到任何结果。您非常接近。它在这里工作:。
dataBound
区分大小写,这里不需要使用
ds
,我固定了模板,您需要使用中数组的
length
属性来获取指令中的元素数。
$('div[kendo-grid="SearchGrid"] .k-menu').data('kendoMenu').setOptions({dataSource: $scope.menuDataSource});