所以我知道通过使用$ parsers,我可以使模型与视图值不同。
但是如果我想在不使用$ 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,它会更改模型中的值,但视图值保持不变。
没有任何$ setModelValue方法,看起来它可以用于此目的。
有什么想法吗?
答案 0 :(得分:0)
试试这个,
.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();
});
}
};
});