所以我看到了很多答案,但没有一个适合我的情况。我不能使用jQuery fyi。
<ng-repeat="stuff in junk">
<md-input-container>
<input type="number" ng-model="stuff.value.currentValue" ng-keypress="myController.checkLength(stuff.length)"
这显然是我正在做的非常粗略的模型。最终我只是想做一个数字输入,我可以限制长度,而不是只有一个错误告诉他们太多的字符,提交。因为模型是可变的,我不能getelementbyID,不能使用maxlength作为其类型=&#34;数字&#34;等等。我彻底难倒。我真的不想使用标准输入,然后对用户输入进行验证,但我没有想法
答案 0 :(得分:0)
在这种情况下,你应该使用attribute max
。
<input type="number" max="9000" ng-model="stuff.value.currentValue" ng-keypress="myController.checkLength(stuff.length)" />
答案 1 :(得分:0)
如果我正确理解了这个问题,那么你是否试图在每个输入的长度上设置一个硬限制,作为ng-repeat中每个stuff.value.currentValue(可能是变量)的长度。 。如果这是正确的,您可以尝试以下方法:
<input type="number"
maxlength="{{::stuff.value.currentValue.length}}"
ng-model="stuff.value.currentValue"
ng-keypress="myController.checkLength(stuff.length)" />
绑定中变量名称前的::
表示一次绑定,这意味着该值在第一个摘要周期后设置,并且在后续摘要后不会更改。这意味着,当你的ng-repeat循环遍历数据时(比如说&#39; Peter&#39;,&#39; Paul&#39;和&#39; Mary&#39;),每个输入&#39 ; s最大长度将是原始输入的长度(在本例中为5,4和4),并且在更新模型时不会更改。 maxlength属性不会提供错误消息,但不允许用户输入长度超过每个stuff的原始长度的文本.value.currentValue