当我面临与Android 4.4 Samsung Galaxy TabS相关的问题时,< input type =" number">这不会暴露键盘中的点键(因此阻止用户输入小数值),我需要有条件地设置type =" text"对于这样的设备,我应该怎么做,因为以下不起作用?
<input type="{{device.isAndroid?'text':'number'}}">
答案 0 :(得分:3)
您可以使用ng-attr-type
<input ng-attr-type="{{$ctrl.isNumber? 'number' : 'text'}}">
P.S。我知道它已经关闭,但我认为更新有用,因为谷歌搜索会返回此页
答案 1 :(得分:1)
您无法动态更改输入的类型,因此我建议对这两种类型进行硬编码并使用ng-switch或ng-if根据设备显示其中一种。
例如
<input type="text" ng-if="device.isAndroid">
<input type="number" ng-if="!device.isAndroid">
或通过指令:http://plnkr.co/edit/0y8I6PIQqot9ZdN6OBnw?p=preview
app.directive('myDirective', [function() {
return {
restrict: 'A',
scope: {
isAndroid: '='
},
link: function(scope, element, attr, ctrl) {
scope.$watch('isAndroid', function(newValue) {
if (newValue === true) {
element.attr('type', 'number')
} else {
element.attr('type', 'text')
}
})
}
};
}]);
HTML:
<input my-directive is-android="device.isAndroid">