有没有办法让输入元素上有一个ngMaxlength属性,但它的值为" Infinity"?

时间:2014-09-17 21:47:24

标签: javascript html angularjs

有没有办法让输入元素上有一个ngMaxlength属性,但它的值为“Infinity”(是的,我知道我可以通过完全没有属性来做到这一点,但这需要一个重构,我我试图避免??

我已尝试将ngMaxlength设置为0-1infinityInfinity,但这些似乎都无效。

顺便说一下,我们正在AngularJS 1.0.5


根据评论,这是我正在尝试做的事情:

我们有一个指令,让我们的程序员以下面的方式编写CRUD-y表(这个例子没有显示删除和其他几个与我的问题无关的功能,如果你想知道为什么我说CRUD而不是CRU):

<crud-table url="api/url-to-perform-get-post-and-put-on">
   <crud-table-column title="Title of Column 0" field="fieldThatContainsData0" type="text"></row>
   <crud-table-column title="Title of Column 1" field="fieldThatContainsData1" type="checkbox"></row>
<crud-table>

我想在maxlength上更改API make <row />属性,因为其中一个用法具有该要求。使用对现有代码的最小更改来执行此操作的最简单方法是将该值插入到maxlength属性上方input元素,该元素由{{1}指令创建(未显示)该行的行为是type。如果我可以使用值“无穷大”我可以放在text属性中而不必完全省略该属性来传达相同的含义,那就少了工作。如果我的问题的答案是“你不能”,我可以弄清楚;我只是不想重构maxlength指令而不使用模板。

2 个答案:

答案 0 :(得分:1)

根据directive implementation,它使用角度ng-maxlength函数解析int()属性指定的值:

var maxlength = 0;
attr.$observe('maxlength', function(value) {
    maxlength = int(value) || 0;
    ctrl.$validate();
});

基于parseInt()

function int(str) {
    return parseInt(str, 10);
}

在尝试将字符串解析为int时,我没有看到parseInt()返回infinity的简单方法。

答案 1 :(得分:0)

根据文档,您只需将值设置为-1或非数字值 https://docs.angularjs.org/api/ng/directive/input