2015-09-21 40 views
0

我想要一个字符串,通过角度的过滤器作为一个JavaScript函数的参数。 Angular不解析它,我该如何解决这个问题?如何获得过滤的角度字符串作为js函数参数?

<input type="text" ng-required="true" ng-model="foobar" 
oninvalid="this.setCustomValidity({{ 'String' | myfilter }})"> 

{{..}}没有经过Angular的解析。如果我删除双引号它仍然为角“修复”它被oninvalid不起作用=“this.setCustomValidity( {{

而且,如果有另一个,自定义的多棱角方式浏览器验证消息,会做的伎俩,我也。

回答

0

你可以通过foobar直接

oninvalid="this.setCustomValidity({{ 'String' | myfilter(foobar) }})" 
+0

这不是我问的。 – vampireLady

0

你可能想读angular documentation for input,特别是例如plunker提供解决你的问题。

如果您仍然需要提示如何在参数中使用过滤器,请提供有关您的oninvalid指令的信息。

+0

Oninvalid不是我的指令,而是输入字段的HTML5参数。当留空一个'必需'的字段时(ng-required需要同时呈现ng-required和required),那么浏览器显示它自己的错误,通常是“请填写此字段”。 oninvalid参数是当字段不是有效的时候浏览器运行的参数。属性setCustomValidity是设置错误值而不是“请填写此字段”的javascript。我需要本地化这个字符串,这就是过滤器所做的。 – vampireLady

+0

请参阅:https://jsfiddle.net/obg7t4pu/1/ – vampireLady

+0

我明白了,没有明白你的问题,因为我不知道html5属性的行为。我现在认为,编写自己的指令是留在角度领域的方法。因为这似乎是一个非常标准的用例,可能你很幸运,并且在github/bower/npm找到一个现有的指令。此外相关问题的答案http://stackoverflow.com/questions/17550836/angularjs-and-html5-required-fields-setting-fields-to-empty-fires-validation表明HTML5验证不完全支持,你可能会最好是关闭它,然后用角度滚动你自己。 –

相关问题