数据绑定 - ui网格

时间:2016-12-12 21:04:38

标签: angularjs data-binding angular-ui-grid ui-grid

我正在尝试将UI网格实现到我的应用中。当我将静态数据分配给gridOptions.data时,一切正常;但是,当我从服务器加载数据后动态地将数据分配给gridOptions.data时,我总是得到一个空字符串。我尝试使用$timeout函数复制动态行为,如下所示,结果仍然相同:空网格。

// ctrl开始

  

这很有效。

 $scope.data = [
             { addedBy :"user", displayName:"Name1" },
             { addedBy :"user2", displayName:"Name2" },
             { addedBy :"user3", displayName:"Name3" }
           ];
  

这不;让网格空着。

 $timeout(function () {
       $scope.data = [
         { addedBy :"user", displayName:"Name1" },
         { addedBy :"user2", displayName:"Name2" },
         { addedBy :"user3", displayName:"Name3" }
       ];
     });

其余代码保持不变。

$scope.columnDefs = [
        {name: 'displayName'},
        {name: 'addedBy'}
      ];

$scope.gridOptions = { 
columnDefs: $scope.columnDefs, 
data: $scope.data 
}; 

// ctrl结束

// html开始

<div class="col-md-12 no-padding" ui-grid="gridOptions" class="grid"></div>

// html结束

我很漂亮,当数据变量发生变化时,ui-grid应该能够更新数据;那么我在这里缺少一些基本的东西吗?

3 个答案:

答案 0 :(得分:1)

初始化网格时,数据不可用。您必须手动调用notifydataChange以便网格更新或重新分配,就像Ronald说的那样。

他们在后者的documentation中有一个例子

答案 1 :(得分:0)

您可以做的另一个选项是将网格定义默认为空数组,并在服务器调用的响应中将其分配给网格。

$scope.columnDefs = [
        {name: 'displayName'},
        {name: 'addedBy'}
      ];

$scope.gridOptions = { 
columnDefs: $scope.columnDefs, 
data: []
}; 

 $timeout(function () {
       $scope.data = [
         { addedBy :"user", displayName:"Name1" },
         { addedBy :"user2", displayName:"Name2" },
         { addedBy :"user3", displayName:"Name3" }
       ];
 $scope.gridOptions.data=$scope.data;
     });

答案 2 :(得分:0)

我有非常动态的网格,其中数据刷新了很多参数。我总是直接将数据分配回$ scope.gridOptions.data。

$scope.gridOptions.onRegisterApi = function (gridApi) {
     //set gridApi on scope
     $scope.gridApi = gridApi;
        $scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
   };

此处为您的每个搜索结果重新分配数据

NotifyDataChange事件可以像这样使用:

testImgPath = os.path.abspath(os.path.join(__file__, '../', 'testFiles', 'imgName.jpg'))

您必须在控制器中添加uiGridConstants依赖项。 但是根据我的调查结果/测试,如果您将数据重新分配给gridOptions.data,则不需要notifyDataChange事件。