跟踪输入中的更改[type=text]
Track changes in a input[type=text]
我使用AngularJS应用程序并将属性绑定到字段$rootScope.person
:
<input type='text' ng-model='person.name'/>
然而,显示的值似乎与跟踪的值不同,如下所示:
$rootScope.$watch('person.name', function (nv) {
if (nv) {
console.log('$rootScope.person changed: ');
console.log(nv);
}
});
如何跟踪修改文本框值的对象或函数?我试着做
<input type='text' ng-model='person.name' oninput="myTrackFunction()"/>
然后在该函数中放置一个断点以跟随stackTrace。。。
但只有当用户手动修改值时,才会捕捉到这个。。。有没有一种方法可以捕捉输入中文本更改的所有来源?
一些代码例如:
var app = angular.module('myApp', []);
app.run(function($rootScope){
$rootScope.person = {name:'Brain', age:20};
$rootScope.change = function(){
$rootScope.person.name = Math.random().toString(36)
.replace(/[^a-z]+/g, '').substr(0, 5);
}
});
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js">
</script>
<div ng-app='myApp'>
<input type=text ng-model='person.name'>
person.name is {{person.name}}
<input type=button ng-click="change()" value="change"/>
由于我无法重现本例中的"bug",我希望有任何方法来检测更改值的函数(在这种情况下,当我按下按钮时)是change()
,我的意思是每次值更改时都要识别值更改的来源。。。
这是类似于这个问题的一种重复。
object-watch.js
polyfill似乎很方便。
看看它在这个小提琴中应用于你的案例:http://jsfiddle.net/masa671/c6vge629/.打开调试器。铬测试。
相关文章:
- 如何将输入(type=text)从html表单传递到javascript函数
- type=text/javascript和language=javascript之间的区别
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 使用图像而不是文本(script type=“text/javascript”)
- 如何使用 JavaScript 显示 html 输入:.html(' < input type=“text” /
- JavaScript / jQuery input[type=text] pattern
- Jquery selector input[type=text]')
- AngularJS:如何为输入type=text生成动态ng模型
- JavaScript正则表达式中type=number和type=text之间的区别是什么
- 跟踪输入中的更改[type=text]
- 从脚本type="text/template"设置数据属性为jQuery对象
- 在innerHTML中添加p元素后,输入[type="text"]的值不显示
- 不能在元素上创建checkboxradio.nodeName=input, element.type=text
- 在angularJS中根据另一个输入[type=text]值设置输入[type=range]最大值
- 如何在input type="text"与jQuery
- 在运行时将input type=text.outerHTML()替换为新的outerHTML()
- 在Angular中,如何使用input type=text字段来只接受数字、负号和小数,别无其他
- 如何使用jQuery.自动完成隐藏的输入字段(type="text")
- 如何在一个type="text/ng-template"的页面中使用javascript
- 如何从input 'type=text'元素使用jquery