2014-01-21 6 views
0

если пользовательский ввод не является числом, мне нужно вернуться к старому значению числа.угловая директива scope [attrs.ngModel] не работает

установка область значение из директивы не работает.

http://jsfiddle.net/vfsHX/149/

app.directive('isNumber', function() { 
    return { 
    require: 'ngModel', 
     link: function (scope, element, attrs) { 
      scope.$watch(attrs.ngModel, function(newValue,oldValue) { 
      var arr = String(newValue).split(""); 
      if (arr.length === 0) return; 
      if (arr.length === 1 && (arr[0] == '-' || arr[0] === '.')) return; 
      if (arr.length === 2 && newValue === '-.') return; 
      if (isNaN(newValue)) { 
       console.log(oldValue); 
       scope[attrs.ngModel] = oldValue; 
      } 
     }); 
    } 
}; 
}); 

ответ

0

Ваша модель находится в вложенной форме, следовательно, при попытке получить доступ с помощью scope[attrs.ngModel], вы referening к модели, которая не существует. Вместо использования вложенной javascript-модели, если вы непосредственно даете ссылку, то ее работа. Проверьте скрипку здесь http://jsfiddle.net/ztUsc/1/

+0

Но я действительно хочу сделать это с вложенным Javascript модели. Как это сделать? – Thilaga

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