用 JavaScript 替换 ngGrid 中的一行 'splice' 方法 - angularjs, nggrid



我试图用不同的项目替换ngrid中的项目。拼接单个项目可以工作。使用splice插入项:

$scope.myData.splice(1, 0, object); 

同样适用。然而,splice(index,1,object)并不更新网格。我如何在ngrid上显示myData的更新?我在这里重复了这个问题

我认为这应该可以工作,我会把它作为bug报告给ng-grid团队。如果我在源代码中将$watch更改为$watchCollection,它可以正常工作(ng-grid.js中的3295行,3296行)(plnkr):

$scope.$on('$destroy', $scope.$parent.$watchCollection(options.data, dataWatcher));
$scope.$on('$destroy', $scope.$parent.$watchCollection(options.data + '.length', function() {

作为替代,你可以使用angular。复制以更改现有对象的属性,而不是将新对象拼接到:

angular.copy(obj, $scope.myData[1]);

最新更新