我有以下html:
<input type="text" ng-model="skype" ng-change="checkInput('skype')">
功能是:
$scope.checkInput = function(value) {
var string = $scope[value],
pattern = /[^a-zA-Z]+/g;
string = string.replace(pattern, '');
}
现在,console.log显示该字符串已成功替换,但视图未更新。 最奇怪的部分是使用子字符串时视图更新!
string = string.substring(0, 10);
怎么了?
答案 0 :(得分:6)
您没有为范围设置任何值,以便角度可以观察并做出反应,您的功能正在做某事但从未将值设置为范围。
$scope.checkInput = function(value) {
var string = $scope[value],
pattern = /[^a-zA-Z]+/g;
$scope.skype = string.replace(pattern, '');
}