当前位置: 首页 > 面试题库 >

我想用不同的输入columnDefs为ui-grid编写一个自定义指令

凌经赋
2023-03-14
问题内容

这是我的控制器

$scope.usersList = {};

$scope.usersList = {
    paginationPageSizes: [10,15, 20],
    paginationPageSize: 10,
    columnDefs: [
        { name: 'userId', cellTemplate: '<div class="ui-grid-cell-contents"><a ui-sref="appSetting.userSelected({userId: row.entity.userId})">{{ row.entity.userId }}</a></div>' },
        { name: 'firstName' },
        { name: 'lastName' },
        { name: 'emailId' },
        {
            name: 'action',
            cellTemplate: '<div>' +
                    '  <button  ng-click="grid.appScope.sampledetails()">Delete</button>' +
                    '</div>',
            enableSorting: false,
            enableColumnMenu: false
        }
    ]
};

这是我的.cshtml

<div id="grid1" ui-grid="gridOptions" class="grid"></div>

我想这样写,以便在其他.cshmtls中使用它,但是columnDefs取决于表列名而有所不同。我应该如何以这样的方式编写该用户应在分页指令中为columnDefs提供指令?


问题答案:

您的问题很难理解,希望我理解正确。您想为网格定义默认设置,但需要时允许用户输入一些特殊设置吗?

在您自己的指令中扭曲ui-grid。将所需的参数传递给该指令,并在指令中创建默认设置。

您的.cshtml。您将设置变量传递给它。

<my-grid options="usersList" />

您的指令。在此处获取设置(请参阅选项:“ =”),并将其绑定到控制器或示波器。

angular.module('app').directive('myGrid', myGrid);
function myGrid() {
  return {
    templateUrl : 'grid.html',
    controller : 'GridCtrl',
    controllerAs : 'grid',
    restrict: 'E',
    scope: {
      options : '=',
    },
    bindToController: true,
  };
}

您的控制器。现在,您可以在该控制器中访问您的设置。在那里,您可以将默认设置与插入的设置结合起来,并将其传递到指令模板。

angular.module('app').controller('GridCtrl', GridCtrl);
function GridCtrl() {
  var grid = this;

  console.log(grid.options); // containts your settings

  grid.gridOptions = {
    paginationPageSize: grid.options.paginationPageSize,
    ...,
    columnDefs: grid.options.columnDefs
    etc
  }
}

然后将您的grid.html将组合的设置传递到grid-API中。

<div id="grid1" ui-grid="grid.gridOptions" class="grid"></div>

还有更多细节需要提防,但这就是可能的设置。

e:我为另一个类似的问题做了一个Plunkr。备查。



 类似资料:
  • null 最终产品应该如下所示: 在上面的例子中,@public instance将只有uniqueKey、gtin、printedGtin作为属性。

  • 本文向大家介绍手写一个自定义指令及写出如何调用相关面试题,主要包含被问及手写一个自定义指令及写出如何调用时的应答技巧和注意事项,需要的朋友参考一下 vue.directive('custom-module', { insetred: function(el,binding,vnode){ } });

  • 问题内容: 我有关于动态更改的问题。这是我的gridOptions: 当我从服务器检索数据时: 注意:这里c是来自服务器的列对象。 当动态生成列并将其分配给$ scope.gridOptions.columnDefs时,会出现空白网格,但数组会填充有正确生成的列对象。请帮助我解决此错误,或者我做错了什么? 问题答案: 在ag- grid中,gridOptions中的列在网格初始化时使用一次。如果在

  • 本文向大家介绍MyBatis 如何编写一个自定义插件?相关面试题,主要包含被问及MyBatis 如何编写一个自定义插件?时的应答技巧和注意事项,需要的朋友参考一下 自定义插件实现原理: MyBatis 自定义插件针对 MyBatis 四大对象(Executor、StatementHandler、ParameterHandler、ResultSetHandler)进行拦截: Executor:拦截内

  • 考虑到以下情况: lambda通过SQS接收事件 现在我们监控一个自定义的错误计数指标,如。这为我们提供了错误发生次数的确切数字-独立于特定实体:如果一个实体不能像100次那样被处理,那么度量值将是。 不过,我想要的是一个基于UUID的独特度量。例子: id为123的实体失败10次 id为456的实体成功 id为789的实体失败20次 然后我想要一个值为的度量,因为流程只对两个实体失败(而不是像现