Angularjs 如何在动态生成的角度ui网格中设置列的默认宽度?

Angularjs 如何在动态生成的角度ui网格中设置列的默认宽度?,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我正在以下控制器中动态创建大量ui网格实例,希望每个网格中的每一列的最小宽度为150px。每个网格的数据和列数不同 起初,我试着这样做: <div ng-controller="displayResponses"> <ul class="list-group"> <li class="list-group-item" ng-repeat="x in responses"> <div ui-grid="{minimumC

我正在以下控制器中动态创建大量ui网格实例,希望每个网格中的每一列的最小宽度为150px。每个网格的数据和列数不同

起初,我试着这样做:

<div ng-controller="displayResponses">
    <ul class="list-group">
      <li class="list-group-item" ng-repeat="x in responses">
        <div ui-grid="{minimumColumnSize: 150, data: x.data}" class="grid"></div>
      </li>
    </ul>
</div>
问题是,我不想将minWidth编码到服务器端逻辑中。在尝试分离视图和模型时,移动columnDefs定义是一项挑战

github用户在以下位置提到了类似的问题:

,尽管提议的解决方案尚未实施

现行代码 在当前工作的代码中,服务器返回response.columnDefs,我使用名为responseManager的服务,该服务在$http.post(…)收到响应后调用。SetResponseManager.setResponses(数据)将每个响应的gridOptions设置为:

setResponses: function (data) {
  angular.forEach(data, function(response){
    response.gridOptions = { paginationPageSizes: [10, 25, 50], paginationPageSize: 10, columnDefs: response.column_defs, data: response.rows };
  });
  responses = data;
}
理想情况下,我希望通过查看每个响应并定义columnDefs数组,在responseManager中设置columnDefs。但是,当我在responseManager服务中创建columnDefs数组并将其分配给responses数据模型时,我收到一个错误:

TypeError: Cannot read property 'data' of undefined
at new <anonymous> (ui-grid.js:3130)
at Object.invoke (angular.js:4450)
at extend.instance (angular.js:8999)
at nodeLinkFn (angular.js:8109)
at delayedNodeLinkFn (angular.js:8398)
at compositeLinkFn (angular.js:7541)
at compositeLinkFn (angular.js:7545)
at publicLinkFn (angular.js:7416)
at boundTranscludeFn (angular.js:7560)
at controllersBoundTransclude (angular.js:8177)
TypeError:无法读取未定义的属性“数据”
新建时(ui-grid.js:3130)
在Object.invoke(angular.js:4450)
在extend.instance(angular.js:8999)
在nodeLinkFn(angular.js:8109)
在delayedNodeLinkFn(angular.js:8398)
在复合线kfn(angular.js:7541)
在复合线kfn(angular.js:7545)
在publicLinkFn(angular.js:7416)
在boundTranscludeFn(angular.js:7560)
at controllersBoundTransclude(angular.js:8177)
。我读过关于可能使用“compile”来更新模型的文章,但现在我不确定

有人知道怎么做吗?我肯定我错过了一些明显的东西

setResponses: function (data) {
  angular.forEach(data, function(response){
    response.gridOptions = { paginationPageSizes: [10, 25, 50], paginationPageSize: 10, columnDefs: response.column_defs, data: response.rows };
  });
  responses = data;
}
TypeError: Cannot read property 'data' of undefined
at new <anonymous> (ui-grid.js:3130)
at Object.invoke (angular.js:4450)
at extend.instance (angular.js:8999)
at nodeLinkFn (angular.js:8109)
at delayedNodeLinkFn (angular.js:8398)
at compositeLinkFn (angular.js:7541)
at compositeLinkFn (angular.js:7545)
at publicLinkFn (angular.js:7416)
at boundTranscludeFn (angular.js:7560)
at controllersBoundTransclude (angular.js:8177)