我有一个输入,使用模型"filttro3"。点击,我想删除它的内容。这样做是正确的:
<input type="text" ng-model="filtro3" placeholder=" Buscar" ng-click="filtro3 = null">
但如果我想在一个函数中执行相同的操作,则该函数不起作用:
<input type="text" ng-model="filtro2" placeholder=" Buscar" ng-click="actualizaCombo()">
$scope.actualizaCombo = function() {
console.log('actualizaCombo');
console.log('filtro2 before='+$scope.filtro2);
$scope.filtro2 = null;
console.log('filtro2 after='+$scope.filtro2);
}
控制台中显示的执行:
actualizaCombo
filter2 before = undefined
filter2 after = null
当我键入"as"时:
actualizaCombo
filter2 before = null
filter2 after = null
并没有擦除它的内容,在屏幕上继续显示"as"。怎么了?错过了什么?感谢
您的输入可能在创建子$scope的angular指令内,因此当您尝试引用您的$scope.filtro2时,它不存在。它可能在$范围内$parent.filtro2或类似的东西。
作为angular的一个好做法,你应该更喜欢用点表示法引用一些东西:不要把你的filtro2直接放在$scope中,而是使用和object,比如$scope.filters={filtro2:'test'}
或者,通过参数传递要在ng单击中发生突变的元素ng点击:"myAction(myElement)"