xeditable Grid 的下拉值不能从外部下拉列表更改

xeditable Grid's drop down values cannot change from the outside dropdown

我正在使用 xeditable angular directive.I 需要根据外部下拉列表的值设置网格的 Status 列的所有下拉值. 我设置了JsFiddle here。但是不是working.Could你告诉我为什么?提前致谢。

更新: 当我点击 cancel 按钮时 updated.Very 很奇怪 :( 你能告诉我如何解决这个问题吗?

HTML

<span editable-select="bulkPaymentType" e-form="tableform" e-ng-options="s.value as s.text for s in statuses" e-ng-change="setBulkPaymentType($data)">
 </span>

js

 $scope.setBulkPaymentType = function (data) {
        for (var i = $scope.users.length; i--;) {
            var user = $scope.users[i];
            user.status = data;
        };
    };

JSFiddle

您的 setBulkPaymentType 方法正在更新控制器范围内的用户。 但可编辑输入中的值实际上是控制器范围的副本。因此,当您调用 setBulkPaymentType 时,您看不到它们发生变化。当您点击取消按钮时,表单将显示您使用 setBulkPaymentType 更新的控制器范围内的值,这就是原因。我认为您不能直接修改每个可编辑对象中的 $data,因为它们使用的是隔离范围。无法从外部访问 $data。

我找到了 solution.Here :)

HTML

<span editable-select="bulkPaymentType" e-form="tableform" e-ng-options="s.value as s.text for s in statuses" e-ng-change="setBulkPaymentType($data,tableform)">
 </span>

JS

$scope.setBulkPaymentType = function (data,tableform) {
        for (var i = 0; i < tableform.$editables.length; i++) {
            if (tableform.$editables[i].name === 'user.status') {
                tableform.$editables[i].scope.$data = data;

            }
        }
    };

一起玩: JSFiddle