gpt4 book ai didi

javascript - Angular $parsers 在 View 更改和模型更改后调用

转载 作者:行者123 更新时间:2023-11-30 00:16:45 24 4
gpt4 key购买 nike

看看这个jsbin .

我在这里将 a 替换为 b ,这是我真正想在我的项目中做的事情的简化版本。

在输入中输入一些内容并查看控制台。为什么 doTheJob(argument) 调用不止一次? (根据输入长度的个数调用)


仅供引用,这是我真正想在我的项目中做的事情:

我想将 View 中的波斯数字 (1 2 3 4 5 6 7 8 9 0) 替换为拉丁数字 (1 2 3 4 5 6 7 8 9 0)。这是它的 jsbin .你可以很容易地看到问题。

最佳答案

您当前的代码推送 - 换句话说,添加 - 每次按下键时对 doTheJob 函数的另一个引用。但重点是,您不必检查 keypress - 这就是 Angular 在跟踪模型时已经为您做的事情。

相反,您可以直接在链接函数中更改 $parsers:

link: function (scope, element, attrs, ngModel) {
ngModel.$parsers.push(function(inputValue) {
return doTheJob(inputValue);
});

你不应该忘记做的是改变你的replacer:

return inputValue.replace(/a/g, 'b');

... 这样它就可以在全局范围内进行替换(而不仅仅是一次)。这是 demo .

关于javascript - Angular $parsers 在 View 更改和模型更改后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419662/

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