【问题标题】:AngularJS - Bind input to value with filter and update itAngularJS - 使用过滤器将输入绑定到值并更新它
【发布时间】:2015-06-15 08:36:30
【问题描述】:

我有一个输入绑定到一个对象属性并应用了一个过滤器。

<input value="{{object.field | filter}}">

问题在于,如果我以编程方式更改 object.field,则输入中显示的值不会改变,但是在 DOM Inspector 中我看到了正确的 (新)价值。我已验证消化/应用范围的更改,并且 object.field 变量确实更改正确,问题似乎仅在输入显示值中。

由于涉及的代码太多,我无法提供示例。

有人知道我应该在哪里查找错误吗??

【问题讨论】:

  • 简短的代码可以确保理解问题所在。
  • 我想我解决了。输入附加了一个错误事件,阻止了正确更新值。 “值”属性正在改变,但 $(input).val() 没有。考虑解决问题,谢谢。
  • 很高兴你解决了。

标签: javascript angularjs input


【解决方案1】:

无需以这种方式设置值。 ng-model 负责处理它。 有效的语法是:

<input ng-model="object.field">

对于过滤,您可以查看以下答案: Using angularjs filter in input element

【讨论】:

  • 如果我错了请纠正我,但不幸的是 ng-model 不能与过滤器一起使用。
  • 是的,你说得对。但是您可以在控制器中使用 $parsers 来过滤值。查看我的答案中的“在输入元素中使用 angularjs 过滤器”链接。祝你好运!
【解决方案2】:

我认为您应该使用 ng-model 将数据绑定到输入框而不是 {{expression}}

【讨论】:

  • ng-model 不支持过滤器,是吗?
  • 是的,它不支持过滤,只是绑定数据。
  • 要绑定它我必须使用 value="{{xx}}"...无论如何我解决了它,一个事件阻止了编辑,阅读问题 cmets 以获得更详细的信息。还是谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
相关资源
最近更新 更多