2015-03-24 4 views
0

У меня есть вход, используется модель «filtro3». Нажав, я хочу удалить его содержимое. Делая это работает правильно:Угловая модель обновления при нажатии

<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 

Когда я тип «как»:

actualizaCombo 
filter2 before = null 
filter2 after = null 

И не стирайте его содержимое, на экране продолжает отображаться «как». Что случилось? что-то не хватает? Спасибо

+0

Что вы подразумеваете под «как»? –

+0

Текст, введенный во входной фильтр2. Любой текст, затем щелкните и попробуйте запустить ng-click. Аналогично попытался изменить ng-click для ng-change, но дал тот же результат. – dblanco

ответ

0

Возможно, ваш вход находится в угловой директиве, которая создает дочернюю область $ scope, поэтому, когда вы пытаетесь ссылаться на свой $ scope.filtro2, ее не существует. Это, вероятно, в $ scope. $ Parent.filtro2 или что-то подобное.

Как хорошая практика в угловых вы должны предпочитать ссылаться на что-то с помощью точечной нотации: не переводите filtro2 непосредственно в $ объеме, но использовать и объект как $ scope.filters = {filtro2: «тест»}

или передать аргумент элементу, который вы хотите изменить, в свой ng-click ng-click: «myAction (myElement)»

+0

Спасибо. Не могли бы вы рассказать мне, как использовать $ scope.filters для понимания? – dblanco

+0

просто замените ваш $ scope.filtro2 на $ scope.filters = {filtro2: ''}, а затем в вашем вводе bind на ng-model = "filters.filtro2" – JackNova

+0

Решение: \t \t $ scope.clickBuscar = функция() { \t \t \t $ scope.datosEquipos.buscar \t = '' ; \t \t} – dblanco

Смежные вопросы