gpt4 book ai didi

javascript - Angular Xeditable - 无法使用 onbeforesave 事件获取正确的验证值

转载 作者:行者123 更新时间:2023-12-03 02:50:04 27 4
gpt4 key购买 nike

我正在尝试将验证逻辑添加到我们使用的消息格式值的编辑中。我创建了 plunker here来展示问题。这是花括号验证的代码。

vm.formatCheck = function (resource) {

console.log(resource.Value);

if (resource.Value.indexOf('{') > -1 || resource.Value.indexOf('}') > -1) {

var x = resource.Value.split('{').length - 1;
var y = resource.Value.split('}').length - 1;

if ((x + y) % 2 === 1) {
alert("Incorrect Message format");
return;
}

}
};

示例:如果编辑第一个值 ( {JobRole} for {Organisation} ) 并删除尾部大括号 ( {JobRole} for {Organisation )

alert("Incorrect Message format");永远不会显示,因为它获取原始值 - {JobRole} for {Organisation}而不是{JobRole} for {Organisation

如果我将验证逻辑移至 onaftersave事件我得到正确的值并触发验证,但它会显示/保存不正确的值,这是我想要的。那么我该如何解决这个问题呢?任何帮助表示赞赏。

  • 不确定是否可以使用 defer, promise 解决这个问题 - 但不确定是否可以使用 Angular Xeditable?

最佳答案

这是我的插件,它正在工作:Plunker

基本上,我将你的 html 更改为:

<a href="#" e-name="resource" editable-textarea="res.Value" e-rows="5" e-cols="30"
onbeforesave="vm.formatCheck($data)"
onaftersave="vm.onGridItemChanged(res)">{{ res.Value || 'empty' }}</a></a>

我正在传递 $data 而不是“res”。 $data 是您实际更改的对象属性的值。

在 Controller 中,您的验证函数。 “资源”现在是 $data,其中包含您尝试更改的属性的值。所以你检查它,然后返回一条错误消息。如果您不希望字段旁边显示错误消息,请返回“”;

vm.formatCheck = function (resource) {

console.log(resource);

if (resource.indexOf('{') > -1 || resource.indexOf('}') > -1) {

var x = resource.split('{').length - 1;
var y = resource.split('}').length - 1;

if ((x + y) % 2 === 1) {
alert("Incorrect Message format");
return "Incorrect Message format";
}

}
};

关于javascript - Angular Xeditable - 无法使用 onbeforesave 事件获取正确的验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47909838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com