【问题标题】:Angular js UI grid is not getting updated with new contentAngular js UI 网格未使用新内容进行更新
【发布时间】:2023-03-22 08:03:01
【问题描述】:

我正在调用 $http.get 以从服务器获取新的内容以获取角度 ui 网格。在 datepicker 中更改日期时,我会触发 ng-change 事件以进行另一个 http 调用以获取新内容。调用成功,但网格未使用新内容更新。$scope.grid.core.notifyDataChange() 在 http 成功回调中调用时抛出错误。请建议使用新内容更新网格的方法。

请找到 plnkr 代码。当我单击加载按钮时,我想使用 http 调用使用新的 JSON 数据更新网格,但它没有更新网格。 http://plnkr.co/edit/S2A3scEoO6QIGFbru3Lr?p=preview

【问题讨论】:

  • 请提供您正在使用的代码,以便有人可以提供帮助。
  • 你需要添加一些代码,你尝试了什么?
  • 请找到plnkr代码。当我单击加载按钮时,我想使用 http 调用使用新的 JSON 数据更新网格,但它没有更新网格。 plnkr.co/edit/S2A3scEoO6QIGFbru3Lr?p=preview

标签: angularjs angular-ui-grid


【解决方案1】:

您的示例的问题在于 $httpsuccess 方法(第 256-260 行)。

$http.get(...).success(
  function(data){
    $scope.roData = data;
});

您只是将数据放在范围属性 ($scope.roData) 中,但您没有对该范围属性执行任何操作。

此外,您还尝试使用以下行将错误的值分配给 uiGrid.gridOptions.data

if($scope.gridOptions.data ==='rData'){
  $scope.gridOptions.data = 'roData';
}

但是你犯了两个错误:

  1. 将变量视为字符串,这是行不通的。在您的 JS 文件中,您需要使用 $scope.nameOfVariable 访问您的范围,而不是使用它们的名称作为字符串,如 'nameOfVariable'

  2. 您将这些行放在您的 success 方法之外,因此它们会在您实际获取数据之前执行。

我设法编辑了你的 plunker 并让它工作,你可以找到它here。 我所做的是将您的线路放在一起并修复名称错误。我没有放任何if,因为我不知道你想要完成什么逻辑。

$http.get(...).success(
  function(data){
    $scope.roData = data;
    $scope.gridOptions.data = $scope.roData;
});

【讨论】:

  • 非常感谢您的帮助。
猜你喜欢
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
  • 2023-02-13
  • 1970-01-01
相关资源
最近更新 更多