似乎无法让Angular格式化程序和解析器工作:
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的新手,无法弄清楚我是如何调试它的。
答案 0 :(得分:1)
尝试写:
<input ng-model="some_value" change-case> //camel-case
中对此进行了解释
规范化
Angular规范化元素的标记和属性名称 确定哪些元素与哪些指令匹配。我们通常会提到 通过其区分大小写的camelCase规范化名称来指示(例如 ngModel)。但是,由于HTML不区分大小写,我们参考 DOM中的指令通过小写形式,通常使用 DOM元素上的破折号分隔属性(例如ng-model)。
规范化过程如下:
- 从元素/属性的前面剥离x-和数据。
- 转换或_分隔名称为camelCase。