【发布时间】:2018-03-11 14:30:26
【问题描述】:
我正在开发的应用程序要求我访问 paginationChanged 函数,该函数仅在我将 onRegisterApi 对象添加到表中的 gridOptions 时才可用。我需要访问 paginationChanged 函数,以便可以在 PageSize 增加时更改网格的高度。我知道访问 gridApi 的唯一方法是注入 $scope ,自 Angular 1.6 及更高版本以来不再使用它。现在我正在使用 Angular 1.6 并通过使用 ui-grid= $ctrl.gridOptions 来访问 html 视图上的 gridOptions。有谁知道在 onRegisterApi 对象的一部分时无需使用 $scope 即可访问 gridApi 的方法?
【问题讨论】:
-
Angular 1.6 不使用 $scope 是怎么回事?
-
我不清楚你要什么。
onRegisterApi回调专门用于让您访问 gridApi。您可以在此时附加您的网格事件处理程序,甚至可以保存对 gridApi 的控制器引用,以便在必要时在其他事件处理程序中使用。你能详细说明你正在尝试什么不起作用吗? -
感谢@JCFord,我正在尝试在 onRegisterApi 回调中访问 gridAPI,但我不能,因为它需要在控制器中使用 $scope。我的控制器没有使用 $scope 编写,因为据我所知,在 Angular 1.6 及更高版本中不再使用 $scope。所以我想知道是否有一种方法可以访问 gridApi 而不必使用 $scope 因为我仍然需要访问其中关联的属性。
-
@JCFord ,我忘了补充一点,当我实现以下代码时,我正在尝试的不起作用的只是简单地尝试访问 gridApi: onRegisterApi: function(gridApi) { console.日志($ctrl.gridApi)}。它在控制台中显示为未定义。以下代码可以正常工作,因为在控制器中使用 $scope :onRegisterApi: function(gridApi){console.log($scope.gridApi)}。
-
下面的答案应该适用于您的 gridApi 访问。不过请注意,$scope 仍然是 AngularJS 的一个组成部分,包括 1.6 版本。
标签: angularjs angular-ui-grid ui-grid angular1.6