【问题标题】:How to get a filtered angular string as a js function parameter?如何获取过滤的角度字符串作为js函数参数?
【发布时间】:2015-09-21 18:30:42
【问题描述】:

我想要一个通过 angular 过滤器的字符串作为 javascript 函数的参数。 Angular 不解析它,我该如何解决?

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

{{ .. }} 没有经过 Angular 的解析。如果我删除双引号,它仍然无法工作,因为 Angular 将它“修复”为 oninvalid="this.setCustomValidity("{{

另外,如果有另一种更角度的方式来自定义浏览器验证消息,那也对我有用。

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您可能想阅读angular documentation for input,特别是示例 plunker 为您的问题提供了解决方案。

    如果您仍想提示如何在您的论点中使用过滤器,请提供有关您的 oninvalid 指令的信息。

    【讨论】:

    • Oninvalid 不是我的指令,而是输入字段的 HTML5 参数。当将“必填”字段留空时(ng-required 会同时呈现为 ng-required 和 required),浏览器会显示它自己的错误,通常是“请填写此字段”。 oninvalid 参数是当字段无效时浏览器运行的参数。属性 setCustomValidity 是用于设置错误值而不是“请填写此字段”的 javascript。我需要本地化这个字符串,这就是过滤器的作用。
    • 我明白了,不明白你的问题,因为我不知道 html5 属性的行为。我现在认为编写自己的指令是留在角度领域的方法。由于这似乎是一个非常标准的用例,也许你很幸运并在 github / bower / npm 找到了一个现有的指令。此外,这个相关问题的答案stackoverflow.com/questions/17550836/… 表明 HTML5 验证不完全受支持,您最好禁用它并使用 Angular 滚动您自己的验证。
    【解决方案2】:

    你可以直接传foobar

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

    【讨论】:

    • 这不是我问的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多