2016-06-10 4 views
1

Не похоже, чтобы получить угловые Форматтеры и парсеров работы:Используя угловые Форматтеры/парсеры

app.js:

var itemApp = angular.module('itemApp', []); 

itemApp.controller('ItemController', ['$scope', function($scope) { 

     $scope.some_value = 'abcEFG'; 

}]); 

itemApp.directive('changeCase', function() { 
    return { 
      restrict: 'A', 
      require: 'ngModel', 
      link: function (scope, element, attrs, ngModel) { 

      ngModel.$formatters.push(function(value){ 
       return value.toUpperCase(); 
      }); 

      ngModel.$parsers.push(function(value){ 
       return value.toLowerCase(); 
      }); 

      } 
    }; 
}); 

view.html:

<input ng-model="some_value" changeCase> 

Это не работает - никаких ошибок, просто ничего не происходит со значениями во входном или модели. Я новичок в Angular, не понимая, как я даже отлаживаю это.

+1

[toUpperCase] ​​(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) и [toLowerCase] ​​(HTTPS: // разработчик. mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase), и все методы управления строками не управляют строкой на месте, они возвращают преобразованную строку. Таким образом, вы бы сделали 'return value.toUpperCase()' и т. Д. –

+0

Извините, неряшливый пример кода. Все еще не работает, хотя – Yarin

ответ

1

Попробуйте написать:

<input ng-model="some_value" change-case> //camel-case 

Это объясняется в angular docs

Нормализация

Угловая нормализует тег элемента и имени атрибута , чтобы определить, какие элементы матч директивы. Обычно мы ссылаемся на на директивы по их нормальному имени camelCase с учетом регистра (например, ngModel). Однако, поскольку HTML нечувствителен к регистру, мы ссылаемся на директивы в DOM формами нижнего регистра, как правило, используя атрибуты с разделителями-лимитами на элементах DOM (например, ng-model).

Процесс нормализации заключается в следующем:

  • Strip x- и данных- от передней части элемент/атрибутов.
  • Преобразование или _-разделительное имя для camelCase.
+0

Это было ... спасибо! – Yarin

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