我基本上有一组非常复杂的选项卡,带有各种输入控件,但现在暂不用担心。现在让我们考虑简单的输入密码问题,我感到困惑。
例如:
<input type="text" placeholder="Associate some tags please" data-ng-model="tag" data-ng-maxlength="250">
我试图检测用户是否在我的输入中输入了一些内容:
$scope.$watch('tag', function () {
//$scope.$watchCollection('tag', function () {
console.log('tag changed');
});
但我似乎没有回应。但是,当我执行保存操作时,我似乎总是得到用户键入的值。
ng-model
是否无法正确绑定,或者我是不是$watch
正确绑定了它?
在我执行保存操作后,我尝试清除用户输入的标签:
$scope.tag = '';
但是,由于$scope.tag
并不存在,似乎无法正常工作。
PS:当我说保存操作时,我实际上是在一个对象中执行array.push()
,后来由服务保存。
例如:
$scope.checkSaveTag = function (tag) {
...
// checked for duplicate tag beforehand
$scope.myForm.Tags.push(tagObj); // complicated form object
$scope.tag = ''; // tag input control
...
};
答案 0 :(得分:1)
标签是对象还是数组的可能性?如果是这种情况,你需要做一个深刻的$ watch,例如:
$scope.$watch('tag', function () {
console.log('tag changed');
}, true);
答案 1 :(得分:1)
试试这个
控制器
$scope.form={
tag:''
}
$scope.$watch("form.tag",function(newVal,oldVal){
console.log(newVal);
})
<强> HTML 强>
<input type="text" placeholder="Associate some tags please" data-ng-model="form.tag" data-ng-maxlength="250">