设置要显示的文本格式的指令
Directive to format text to be displayed
我正在玩AngularJS directive
。我想格式化要显示的数据。这就是我正在做的:
.HTML:
<div ng-app="myApp" ng-controller="myCtrl">
<input ng-model="data" type="text" test />
<input type="button" ng-click="change()" value="Change"> {{data}}
<br>Hello <span ng-bind="data" test></span>
</div>
.JS:
angular.module('myApp', [])
.controller('myCtrl', function($scope) {
$scope.data = 'yellow';
$scope.change = function() {
$scope.data = 'black';
};
})
.directive('test', function() {
return {
require: 'ngModel',
link: function(scope, elem, attrs, ngModel) {
ngModel.$formatters.push(function(value) {
//formats the value for display when ng-model is changed
return 'brown';
});
ngModel.$parsers.push(function(value) {
//formats the value for ng-model when input value is changed
return 'green';
});
}
};
});
我能够格式化模型的数据并将其显示为input
文本。但是我无法格式化绑定到模型的span
的数据。 span
按原样显示模型。我不知道为什么跨度显示模型的值。我还想向范围显示格式化的值。这是jsFiddle。
您只能将 ng-model 用于input
。如果要在没有输入的情况下更改div,span,label或任何其他元素中的文本,则可以使用分隔符。 {}
在 $scope 中创建变量时,可以在 html 中显示它。
<div ng-app="myApp" ng-controller="myCtrl">
<input ng-model="data" type="text" test />
<input type="button" ng-click="change()" value="Change"> {{data}}
<br>Hello <span test>{data}</span>
</div>
小提琴
我认为它工作得很好,唯一的问题是你在这里没有采取正确的例子。
首先请阅读以下内容:
- 格式化程序更改模型值在视图中的显示方式。
- 解析器更改视图值在模型中的保存方式。
现在替换下面的代码
ngModel.$formatters.push(function(value) {
//formats the value for display when ng-model is changed
return 'brown';
});
ngModel.$parsers.push(function(value) {
//formats the value for ng-model when input value is changed
return 'green';
});
跟
ngModel.$formatters.push(function(value) {
//formats the value for display when ng-model is changed
return value.toLowerCase();
});
ngModel.$parsers.push(function(value) {
//formats the value for ng-model when input value is changed
return value.toUpperCase();
});
我希望这有帮助!!
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 参数变量出现ngTable指令问题
- 如何使用javascript或html下载PDF格式的填写表单
- 货币代码为欧元-金额的格式不应包含小数
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 使用每次都不同的transclude重复指令
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 设置要显示的文本格式的指令
- AngularJs - 修改输入格式的指令
- AngularJS输入指令在模糊上应用和删除格式&集中
- 使用angularjs的电话格式的自定义指令
- angularJs指令格式日期
- Angularjs指令丢失了数组格式过滤器
- 美元AngularJS http.Get为ng-data-repeat指令检索一个不可用格式的数组
- 指令,它接受用户输入为字符串,并将其重新格式化为交替的大小写.CoMpUtEr变成了CoMpUtEr
- AngularJS指令来更改名称的格式
- Angular中的Money格式指令
- 指令来强制模型采用数字格式