Angularjs 如何以角度动态生成字段类型编号?
我使用一些自定义指令从JSON生成HTML表单。JSON的一部分包括对字段值的限制 JSON对字段的限制之一是正十进制类型。我在link函数中使用的代码用于完成以下任务:Angularjs 如何以角度动态生成字段类型编号?,angularjs,ionic-framework,Angularjs,Ionic Framework,我使用一些自定义指令从JSON生成HTML表单。JSON的一部分包括对字段值的限制 JSON对字段的限制之一是正十进制类型。我在link函数中使用的代码用于完成以下任务: //...snip if (<this field should be number>) { elem.attr("type", "number"); } /…剪断 如果(){ 要素属性(“类型”、“编号”); } 这将成功地将字段类型更改为number。然而,有两个问题: 它不允许负数 每次我键入一个键
//...snip
if (<this field should be number>) {
elem.attr("type", "number");
}
/…剪断
如果(){
要素属性(“类型”、“编号”);
}
这将成功地将字段类型更改为number
。然而,有两个问题:
错误:[ngModel:numfmt]1是一个数字
错误:[ngModel:numfmt]预期12是一个数字
错误:[ngModel:numfmt]预期123是一个数字
输入元素的类型
<input type="{{dynamicType}}" ng-model="inputValue">
HTML
type
属性是input
元素的固有部分。有关详细信息,请参阅 在这种情况下效果很好。为什么需要$compile
?type
属性是input
元素的固有部分。再见。@georgeawg谢谢你。你说得对,我不需要$compile
。由于某些原因,我现在无法让字段显示验证错误,但这可能是一个单独的问题。您应该显示指令的代码。您没有显示您正在使用$compile
,读者需要了解您是如何与ngModelController
@georgeawg进行交互的。再次感谢您的帮助,因为它让我走上了正确的道路。我认为我的代码中可能存在其他问题,我不想将其转储到StackOverflow上,因此我将尝试将这些问题转化为可管理的部分。
angular.module("myApp").directive("typeVar", function() {
return {
link: linkFn
};
function linkFn(scope,elem,attrs) {
//elem.attr("type", "number");
attrs.$observe("typeVar", function(value) {
elem.attr("type", value);
//attrs.$set("type", value);
});
}
});
<input type-var="{{dynamicType}}" ng-model="inputValue">