我正在使用Angular中的表单构建器应用程序,并且在Chrome中遇到了一个奇怪的错误。我基于变量动态设置表单输入类型。这似乎适用于所有输入类型,除了" file",它将始终更改为" text"在Chrome中。一个简单的例子如下:
<div ng-app="app">
<input type="{{'file'}}" /><br />
<input type="{{'color'}}" /><br />
<input type="{{'button'}}" value="button" />
</div>
答案 0 :(得分:5)
确实,这听起来像是一个错误,但您可以使用ngAttr
轻松绕过它:
<input ng-attr-type="{{'file'}}" />
<input ng-attr-type="{{'color'}}" />
<input ng-attr-type="{{'button'}}" value="button" />
答案 1 :(得分:0)
我提出了ng-type指令的基本版本:
angular.module('ng').directive('ngType', function ($timeout) {
return {
scope: {
ngType: "="
},
link: function ($scope, element, attr) {
$scope.$watch('ngType', function (newValue, old) {
element.attr('type', newValue);
});
}
};
});
http://jsfiddle.net/camus/x649Q/2/
而“bug”得到修复。
编辑:黑洞答案是正确的。