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;
};
};
您的 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
我正在使用 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;
};
};
您的 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