gpt4 book ai didi

javascript - Angular - 不使用 $parsers 更新模型

转载 作者:行者123 更新时间:2023-11-28 07:56:08 25 4
gpt4 key购买 nike

所以我知道我可以通过使用 $parsers 让模型与 View 值不同。

但是如果我想在不使用 $parsers 的情况下更改模型怎么办?

例如:

html

<input tel-input ng-model="data.phone">
{{data.phone}}

js

.directive('telInput', function($compile) {
return {
restrict: 'A',
scope: {
ngModel: '='
},
link: function(scope, elem, attrs) {
elem.on('paste', function() {
scope.ngModel = 'special model value after pasting';
});
}
};
});

这样做的问题是,当发生 scope.ngModel = 'pasting not allowed 时,它会更改输入中的值。

使用 $parsers,它会更改模型中的值,但 View 值保持不变。

没有任何 $setModelValue 方法,这似乎可以达到此目的。

有什么想法吗?

最佳答案

试试这个,

.directive('telInput', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, elem, attrs, ngModel) {
elem.on('paste', function() {
ngModel.$setViewValue('special model value after pasting');
ngModel.$render();
});
}
};
});

关于javascript - Angular - 不使用 $parsers 更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26064666/

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