我有一个输入框。
我需要对此框进行自动投资。
是否有可用的属性或我需要在控制器上编码
我还需要将此效果应用于角度模型
答案 0 :(得分:2)
是的,我们有一个指令:) 原始代码(用TypeScript编写)在GitHub上https://github.com/ST-Software/STAngular/blob/master/src/directives/SgUpperCase.ts
//修正了光标跳到最后的错误
someModule.directive("sgUpperCase", [function () {
function getCaretPosition(inputField) {
// Initialize
var position = 0;
// IE Support
if (document.selection) {
inputField.focus();
// To get cursor position, get empty selection range
var emptySelection = document.selection.createRange();
// Move selection start to 0 position
emptySelection.moveStart('character', -inputField.value.length);
// The caret position is selection length
position = emptySelection.text.length;
}
else if (inputField.selectionStart || inputField.selectionStart == 0) {
position = inputField.selectionStart;
}
return position;
}
function setCaretPosition(inputElement, position) {
if (inputElement.createTextRange) {
var range = inputElement.createTextRange();
range.move('character', position);
range.select();
}
else {
if (inputElement.selectionStart) {
inputElement.focus();
inputElement.setSelectionRange(position, position);
}
else {
inputElement.focus();
}
}
}
return {
require: "^ngModel",
restrict: "A",
link: function (scope, elm, attrs, ctrl) {
var toUpperCase = function (inputValue) {
if (!inputValue)
return inputValue;
var modified = inputValue.toUpperCase();
if (modified !== inputValue) {
var position = getCaretPosition(elm[0]);
ctrl.$setViewValue(modified);
ctrl.$render();
setCaretPosition(elm[0], position);
}
return modified;
};
ctrl.$parsers.push(toUpperCase);
toUpperCase(scope[attrs.ngModel]); //Transform initial value
}
};
}]);
答案 1 :(得分:2)
您可以使用uppercase
更改该字段时使用角度过滤器ng-change
,如果您想在加载时使其成为首都,那么您也应该ng-init
同样的事情
<强>标记强>
<input type="text" ng-model="sample" ng-change="sample=(sample|uppercase)"/>
答案 2 :(得分:1)
在public Bestellung() {
this(null, null, new PizzaVO[0], 0);
}
中添加此内容。
controller
会监听对$watch
所做的任何更改,并会更新该值。
bic
答案 3 :(得分:0)
你可以用CSS实际做到这一点。
.position().top
input{
text-transform: uppercase;
}
答案 4 :(得分:0)
你不需要Jquery / Javascript这个。试试这个:
<input type="text" ng-model="abc" id="myid" class="span6" value="" name="">
在CSS中
input {
text-transform: uppercase;
}
<强> JSFIDDLE DEMO 强>
答案 5 :(得分:0)
将类添加到输入标记中。 .capitalize { text-transform:大写&#34; }
i.e <input type="text" ng-model="bic" class="capitalize" id="txtbic" maxlength="11" class="span6" value="" name="">
答案 6 :(得分:0)
查看它的工作情况..它还会更新模型...
<div ng-app="HelloApp">
<input type="text" ng-model="name" uppercased/> {{name}}
</div>
angular.module('components', [])
.directive('uppercased', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(input) {
return input ? input.toUpperCase() : "";
});
element.css("text-transform","uppercase");
}
};
});
angular.module('HelloApp', ['components'])
工作模式here